Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 408 409 [410] 411 412 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6136
,
|
|
|
|
Компилятор и не может распознать такие ошибки при раздельной компиляции. В случае C++ их должен распознавать линкер. Хотя, конечно, гораздо красивее автоматическое создание пространств имён на модуль. |
|
Сообщ.
#6137
,
|
|
|
|
Цитата korvin @ В императивных языках их применяют особенно часто, поэтому это вполне обыденное и очевидное поведение. Покажи мне в С++ такую стандартную функцию, которая сделает с моим объектом что-то неведомое? |
|
Сообщ.
#6138
,
|
|
|
|
Цитата MyNameIsIgor @ Компилятор и не может распознать такие ошибки при раздельной компиляции. В случае C++ их должен распознавать линкер. Хотя, конечно, гораздо красивее автоматическое создание пространств имён на модуль. С пространствами имен может приключится то же самое, хотя и конечно шансы чуть меньше становятся. |
|
Сообщ.
#6139
,
|
|
|
|
Цитата korvin @ С пространствами имен в C++ может приключится то же самое, хотя и конечно шансы чуть меньше становятся. FIXED Я говорил про другие нэймспейсы, неявные, автоматические. Про модульность, короче. |
|
Сообщ.
#6140
,
|
|
|
|
Цитата D_KEY @ Покажи мне в С++ такую стандартную функцию, которая сделает с моим объектом что-то неведомое? При чем тут какое-то неведомое? Добавлено Цитата MyNameIsIgor @ FIXED Я говорил про другие нэймспейсы, неявные, автоматические. Про модульность, короче. А как их тогда подключать, если они неявные, какие у них будут имена? По имени файла? |
|
Сообщ.
#6141
,
|
|
|
|
Цитата korvin @ А как их тогда подключать, если они неявные Указанием импорта модуля. |
|
Сообщ.
#6142
,
|
|
|
|
Цитата MyNameIsIgor @ Указанием импорта модуля. Не, это понятно, имя модуля откуда браться будет, если ns неявное? |
|
Сообщ.
#6143
,
|
|
|
|
Цитата korvin @ Не, это понятно, имя модуля откуда браться будет, если ns неявное? Это может быть имя файла. Или в файле пишет modul abc. |
|
Сообщ.
#6144
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Покажи мне в С++ такую стандартную функцию, которая сделает с моим объектом что-то неведомое? При чем тут какое-то неведомое? При том, что исходный объект будет не просто изменен, он будет "испорчен", т.е. сделать с ним что-то полезное и переносимое я не смогу. |
|
Сообщ.
#6145
,
|
|
|
|
http://goran-dev.blogspot.com/2011/11/blog-post.html
Оказывается "ноль" это ещё не самое интуитивно непонятное у абстрактных методов... |
|
Сообщ.
#6146
,
|
|
|
|
DesweR, тут то что не так?
Чтобы это сделать, тебе нужно явно написать реализацию и явно же ее вызывать из производных классов. Т.е. ты должен знать, что и зачем делаешь. В остальном же, все будет точно так же - класс будет абстрактным, а производные классы должны будут перекрыть метод. И в чем ты видешь проблему? |
|
Сообщ.
#6147
,
|
|
|
|
Цитата D_KEY @ И в чем ты видешь проблему? Ну кагбэ а зачем это вообще? |
|
Сообщ.
#6148
,
|
|
|
|
Цитата DesweR @ Цитата D_KEY @ И в чем ты видешь проблему? Ну кагбэ а зачем это вообще? ![]() Например, для того, чтобы заставить наследника перекрыть метод. Или для того, чтобы предоставить наследнику некий базовую часть реализации(хотя тут наверно лучше завести отдельный метод). Или для чисто-виртуального деструктора(это если ты решил создать абстрактный класс, но у тебя все методы имеют вполне адекватную реализацию по умолчанию), который должен таки иметь тело(ибо будет в любом случае вызван). В общем, в большинстве случаев это действительно не нужно, но и не мешает. |
|
Сообщ.
#6149
,
|
|
|
|
Ну да ладно.
|
|
Сообщ.
#6150
,
|
|
|
|
Вот ещё из свежего.
Но хотя уже поправили. Кстати D_KEY, когнитивный диссонанс это у тебя не вызывает? Цитата Следует заметить, что если в C++03 объект считается до конца созданным когда его конструктор завершает выполнение, то в C++11 после выполнения хотя бы одного делегирующего конструктора остальные конструкторы будут работать уже над полностью сконструированным объектом. |