177 / 163 / 21
Регистрация: 12.02.2013
Сообщений: 410
|
||||||
1 | ||||||
Protected abstract virtual base pure virtual private destructor07.04.2015, 10:58. Показов 2524. Ответов 9
Метки нет (Все метки)
Хай, all)
Вопрос не для начинающих и дурацкий) В разделе для экспертов публиковать не стал, чтобы не засорять его) Наткнулся тут на веселую штуку: If you think C++ is not overly complicated, just what is a «protected abstract virtual base pure virtual private destructor», and when was the last time you needed one? – Tom Cargill (1990) По-русски (надеюсь, нормально на русский перевел): Если вы не считаете C++ излишне сложным, скажите, что такое «закрытый чисто виртуальный деструктор защищенного абстрактного виртуального базового класса», и когда последний раз вы нуждались в нем? – Том Каргилл (1990) Вот это вот так выглядит:
1
|
07.04.2015, 10:58 | |
Ответы с готовыми решениями:
9
Pure virtual function definition (C++11) R6025 pure virtual function call Pure virtual function call (не видит переопределенный метод) В дочерних классах компилятор сообщает об Undefined reference to pure virtual functions |
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
07.04.2015, 11:21 | 2 | |||||
ITcrusader, Этот же вопрос на стеке: http://stackoverflow.com/quest... destructor
Добавлено через 7 минут Наверное единственный вариант который можно предложить сходу:
1
|
07.04.2015, 12:08 | 3 | |||||
Это похоже (не похоже, а так и есть) на одну из тех вещей, которые можно написать на С++ (зная его на достаточном уровне), но при этом они не имеют практической ценности.
Постарался придумать пример
1. Мы не можем создать объект Base 2. Мы не можем унаследоваться от Base если явно не указали этого в самом Base 3. Мы корректно очищаем ptr (т.е. не получаем "double free or corruption (fasttop)" в рантайме) 4. Может еще что-то, не могу придумать Вобщем-то тоже самое можно сделать по-другому, более понятно)
0
|
Неэпический
|
||||||
07.04.2015, 13:22 | 4 | |||||
Я об этом же хотел написать, но вот что меня напрягло.
При этом, если оставить комментарии, то нормально компилируется: vc++ http://rextester.com/VNUC49025 gcc 4.9.2 http://ideone.com/hbq90L gcc 4.3.2 http://ideone.com/dNdPze Но с теми же комментариями в rextester с gcc ошибка: gcc 4.8.2 http://rextester.com/JGCRP29800 Без опции -std=c++11 компилируется нормально http://rextester.com/EWRU92846 Но в 1990 году о C++11 еще не мечтали... Что Я Делаю Не Так? Может что напутал с просонья...
0
|
Неэпический
|
||||||
07.04.2015, 13:37 | 6 | |||||
а, нет, если убрать комментарий
http://rextester.com/DRM84562 а gcc - нет: http://rextester.com/JFK38517
0
|
Kastaneda
|
07.04.2015, 13:49
#9
|
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
07.04.2015, 14:40 | 10 |
Не должно это по идее компилироваться, ибо:
0
|
07.04.2015, 14:40 | |
07.04.2015, 14:40 | |
Помогаю со студенческими работами здесь
10
R6025 pure virtual function call при вызове метода, реализованного в дочернем классе Virtual и abstract и всё же, в чём отличие Pure virtual method called - deleteLater Что означает ошибка pure virtual function call в NFS? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |