Pull to refresh
120
0
Сергій Олендаренко @GooRoo

User

Send message
Не скажу.
Хотя в некоторых частях boost был-таки…
Пфф :) Давайте еще подо все компайлеры ставить дефайны — вдруг в других придумали какие-то свои атрибуты или еще чего… Это IMHO не самый лучший вариант.
Я с таким успехом могу в компилятор натолкать таких фич, которые превратят C++ в другой язык (это я утрированно, но всё же).
Мне нужен переносимый код!
Покажите мне пожалуйста, где эти атрибуты описаны в стандарте C++, прежде чем говорить о недостатках инструментов, которые я выбираю.
Кстати, в новый стандарт C++ добавили литерал nullptr…
Скомпилируйте, пожалуйста, приведенные в этом тексте примеры при помощи компилятора MSVC
По-моему, WinFX — это кодовое название .NET Framework 3.
Если не ошибаюсь, Microsoft хотела, чтобы он пришел на замену Win API в новых ОС, начиная с Vista.
Вообще отловом подобных ошибок должен заниматься Lint (статический анализатор кода).
Однако я не уверен, что подобный анализатор для С++ создавать рентабельно — другое дело языки описания аппаратуры типа Verilog и VHDL.
Блин, ну Вы как в воду смотрите!… :)
За ссылки, конечно, спасибо.
Ну а полный FAQ писать в мои планы не входило. Я не собираюсь охватывать все аспекты языка, но в некоторые мне особенно хотелось бы углубиться. Думаю, если бы я, как Вы говорите, написал подобных статей штук триста, то получилась бы не Lite-версия… :)
На этом, пожалуй, и закончим спор, если, конечно, Вы не против.
Спасибо и Вам на добром слове.
Честно, вот почитал я оба FAQ, как на английском, так и на русском, и что-то они меня не впечатлили. Мало написано.
Ну не знаю. Согласен, ошибка довольно часто встречается у новичков. Но я четко выделил «миф» — очень распространенное заблуждение о том, что функция становится виртуальной только на один уровень иерархии…
Не дай-то Бог встретить такой код в чужом проекте.
У него есть неоспоримый недостаток: он на английском. И если на Хабре английский язык многие знают, то «посторонние» читатели (а таких немало) — далеко не всегда.
> «Сколько не перечитывал, не понял именно так, как нужно. Ваши слова не перечат сказаному мной, но из них никак нельзя напрямую вычленить истину новичку, посему предлагаю немного дополнить этот самый момент».

Я вроде бы нигде не говорил слов «экземпляр» или «объект». Я четко и ясно написал, что таблица одна на класс. Давайте Вы попробуете перефразировать так, чтобы новичку было понятно, а я, если что, исправлю.

> «Но вот мифологический стиль действительно как-то режет глаз».

Ну нужно же как-то заинтересовать новичков — сухих мануалов и документаций по С++ много. Мне хотелось сделать название хоть немного «живым».
Вообще многие пишут, что композиция предпочтительнее наследования. А множественное наследование и подавно можно «обойти стороной»…
Я абсолютно согласен с тем, каким должен быть путь становления программиста С++. Но не каждый идет по «правильному пути». Можете считать, что именно для таких я и пишу.

> «Таблица виртуальный функций не создается одна на класс. Она создается не per instance, а per type, т.е. если вы создали 5 экземпляров класса B, то таблица будет одна, и сидит она в статической памяти. Сделано все это, для экономии памяти :)»

А разве я не это же самое сказал? Я специально подчеркнул, что каждый экземпляр класса содержит лишь указатель на таблицу виртуальных функций.

P.S. Вам ли говорить про пафос? :)
Хозяйке на заметку: шуруп, забитый молотком, держится крепче, чем гвоздь, закрученный отверткой ;)

Information

Rating
Does not participate
Location
Украина
Registered
Activity