Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Крис Касперски по поводу С++ 
:(
    Опции темы
zkv
Дата 26.10.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(Alexeis @  26.10.2007,  15:10 Найти цитируемый пост)
Переменные в цикле for создаются не в блоке, а в функции. 

в восьмерке нормально все, хотя в прошлых версиях была такая фигня.
Цитата(Alexeis @  26.10.2007,  15:10 Найти цитируемый пост)
После включения оптимизации неожиданно появляются ошибки.

ну это на компилятор не стоит сваливать  smile 
Цитата(Alexeis @  26.10.2007,  15:10 Найти цитируемый пост)
Имена функций в разных модулях не изолирует

это как, можно пример простой?
Цитата(Alexeis @  26.10.2007,  15:10 Найти цитируемый пост)
Родной STL, что есть, что нет никакой пользы!

в смысле?
PM MAIL   Вверх
Alek86
Дата 26.10.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



меня тоже раздражают в VS некоторые моменты. но все они весьма мелочные.
к примеру то, что в классе нельзя создать чисто виртуальный конструктор

но вообще впечатление о связке VS+Visual Assist отличнейшие


--------------------
user posted image    user posted image
PM MAIL   Вверх
Lazin
Дата 26.10.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alek86 @  26.10.2007,  15:39 Найти цитируемый пост)
чисто виртуальный конструктор

Виртуальных конструкторов не бывает в принципе
PM MAIL Skype GTalk   Вверх
Alexeis
Дата 26.10.2007, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(zkv @  26.10.2007,  15:18 Найти цитируемый пост)
в восьмерке нормально все, хотя в прошлых версиях была такая фигня.

  Максимальная версия сейчас EVC 4.0

Цитата(zkv @  26.10.2007,  15:18 Найти цитируемый пост)
ну это на компилятор не стоит сваливать


А на кого? Не я же генерю машинный код. Кто ему виноват, что он не знает того, что не все инлайны можно делать инлайнами, ведь стандарт утверждает что делать или нет оптимизацию инлайн на совести компилятора. Че это я должен убрать слово inline руками в тех местах, где он не сумел правильно подставить? Раз не можешь делай функцию! Так везде работает.

Цитата(zkv @  26.10.2007,  15:18 Найти цитируемый пост)
это как, можно пример простой?

  В двух cpp шниках если объявить функцию с одинаковым именем, то линкер ругается, хотя в заголовочных файлах прототипы функций не объявлены!

Добавлено через 2 минуты и 4 секунды
Цитата(Lazin @  26.10.2007,  15:41 Найти цитируемый пост)
Виртуальных конструкторов не бывает в принципе 

  Это еще почему? Очень даже есть, на них весь VCL держится. Просто их нет в С++.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Lazin
Дата 26.10.2007, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alexeis @  26.10.2007,  15:42 Найти цитируемый пост)
В двух cpp шниках если объявить функцию с одинаковым именем, то линкер ругается, хотя в заголовочных файлах прототипы функций не объявлены!

И правильно делает, в таких случаях положено использовать модификатор static.
Цитата(Alexeis @  26.10.2007,  15:42 Найти цитируемый пост)
Очень даже есть, на них весь VCL держится. Просто их нет в С++

Что-то я не замечал в вцл такого, на этапе создания объекта всегда известен его тип.
Код

TWinControl* btn = new TButton(Form);

PM MAIL Skype GTalk   Вверх
Kuvaldis
Дата 26.10.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 11
Всего: 61



Alexeis
Цитата

 Это еще почему? Очень даже есть, на них весь VCL держится. Просто их нет в С++.

В С++ нет метаклассов.
А виртуальный конструктор "через бубен" можено сделать, как предлагает Страуструп, метод Clone


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
Alexeis
Дата 26.10.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(zkv @  26.10.2007,  15:18 Найти цитируемый пост)
в смысле? 

  ХЗ. Недоделанный он и урезанный до нельзя.

Цитата(Lazin @  26.10.2007,  15:51 Найти цитируемый пост)
Что-то я не замечал в вцл такого, на этапе создания объекта всегда известен его тип.

  А вот среда не знает тип объекта, потому при мышкоделии юзает виртуальный конструктор для создания необходимого класса. 



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
zkv
Дата 26.10.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(Alexeis @  26.10.2007,  15:42 Найти цитируемый пост)
EVC

упустил из виду. Тогда молчу.
PM MAIL   Вверх
Lazin
Дата 26.10.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alexeis @  26.10.2007,  16:07 Найти цитируемый пост)
А вот среда не знает тип объекта
 среда не знает, но код который его создает знает, иначе как-бы выделялась память под объект.

Добавлено через 53 секунды
зы
никогда eVC не использовал
PM MAIL Skype GTalk   Вверх
Alexeis
Дата 26.10.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(Lazin @  26.10.2007,  15:51 Найти цитируемый пост)
И правильно делает, в таких случаях положено использовать модификатор static.

хм.. а другие компиляторы и без static не ругаются...

Цитата(Lazin @  26.10.2007,  16:14 Найти цитируемый пост)
 среда не знает, но код который его создает знает, иначе как-бы выделялась память под объект.

  Вот этот код и вызывает виртуальный конструктор, который создает нужный объект.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Lazin
Дата 26.10.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alexeis @  26.10.2007,  16:22 Найти цитируемый пост)
Вот этот код и вызывает виртуальный конструктор, который создает нужный объект. 

Тогда это уже фабрика классов, а не конструктор.
Цитата(Alexeis @  26.10.2007,  16:22 Найти цитируемый пост)
хм.. а другие компиляторы и без static не ругаются...

вот BCB6 к примеру не ругается, а вызывает какую либо одну реализацию функции. Для компоновщика они одинаковы, хоть и находятся в разных obj файлах. Он в принципе не может определить какую функцию вызывать, так как не обрабатывает исходники.

PM MAIL Skype GTalk   Вверх
archimed7592
Дата 26.10.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Alexeis @  26.10.2007,  16:22 Найти цитируемый пост)
хм.. а другие компиляторы и без static не ругаются...

Хм, это плохие компиляторы.


Цитата(Alexeis @  26.10.2007,  16:22 Найти цитируемый пост)
Вот этот код и вызывает виртуальный конструктор, который создает нужный объект. 

Что именно он вызывает?
TButton::TButton(TControl *parent)? smile


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Alexeis
Дата 26.10.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(archimed7592 @  26.10.2007,  16:34 Найти цитируемый пост)
Что именно он вызывает?

  Не буду утверждать, но предположу, что виртуальный конструктор Create у переменной метакалсса, ведь классы реализованы не на C++.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
archimed7592
Дата 26.10.2007, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Alexeis, не буду утверждать, но предположу, что TButton.Create - это тоже никакой не виртуальный конструктор smile.
А вот создание объекта имеяя только метакласс - это уже виртуальный конструктор. Это легко реализуемо. Сложнее с получением самих метаклассов. В Delphi они есть. В С++ их нет, но, к примеру, Qt реализует их(и рефлексию вообще) посредством отдельных утилит. В BCB это делается точно также, только "отдельная" утилита "встроена" в компилятор.



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Alexeis
Дата 26.10.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 12
Всего: 459



Цитата(archimed7592 @  26.10.2007,  17:31 Найти цитируемый пост)
не буду утверждать, но предположу, что TButton.Create - это тоже никакой не виртуальный конструктор

  Все наследники TComponent по дефолту имеют виртуальный конструктор Create, а это вся палитра VCL, остальные его перекрывают.

Цитата(archimed7592 @  26.10.2007,  17:31 Найти цитируемый пост)
В BCB это делается точно также, только "отдельная" утилита "встроена" в компилятор.

  Боюсь что эта утилита называется Dcc32.exe.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0705 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.