Результаты поиска по запросу "pure-virtual"

5 ответов

Чистый виртуальный вызов из конструктора и деструктора

Стандарт C ++ говорит, что вызов чисто виртуальной функции из конструктора или деструктора запрещен. Что является причиной этого? Почему стандарт должен устанавливать такое ограничение?

8 ответов

Чистые виртуальные функции в C ++ 11

В C ++ 98 нулевой указатель был представлен литералом

2 ответа

С ++ 11 Делегированный конструктор Чистый виртуальный вызов методов и функций - опасность?

Не дубликатВызов виртуальной функции и чисто виртуальной функции из конструктора [https://stackoverflow.com/questions/8642363/invoking-virtual-function-and-pure-virtual-function-from-a-constructor] : Предыдущий вопрос относится к C ++ 03, а не к ...

ТОП публикаций

0 ответов

@StoryTeller Он не претендует на семантическую идентичность. Он отмечен как возможная (безопасная) альтернатива, которая хороша во многих ситуациях. (Я постоянно использую это)

отрим следующий стандартный пример CRTP: #include <iostream> template<class Derived> struct Base { void f() { static_cast<Derived *>(this)->f(); } void g() { static_cast<Derived *>(this)->g(); } }; struct Foo : public Base<Foo> { void f() { ...

4 ответа

Есть ли в PHP чисто виртуальные функции, как в C ++?

Я бы подумал, что многие люди задались бы вопросом, возможно ли это, но я не могу найти повторяющихся вопросов ... поправьте меня. Я просто хочу знать, предлагает ли PHP чисто виртуальные функции. Я хочу следующее class Parent { // no ...

4 ответа

Откуда происходят сбои «чистого вызова виртуальной функции»?

Иногда я замечаю программы, которые вылетают на моем компьютере с ошибкой: «чисто виртуальный вызов функции». Как эти программы даже компилируются, когда объект не может быть создан из абстрактного класса?

1 ответ

чисто виртуальная функция и абстрактный класс

У меня есть следующие классы, Base и Derived, и когда я компилирую, компилятор жалуется, что он не может создать экземпляр DLog, потому что он абстрактный.Мо...

6 ответов

При каких обстоятельствах выгодно давать реализацию чисто виртуальной функции?

В C ++ допустимо давать реализацию чисто виртуальной функции: class C { public: virtual int f() = 0; }; int C::f() { return 0; }Зачем тебе это делать? Связанный вопрос:C ++ faq ...

6 ответов

Чистый вызов виртуальной функции из базового ктора

Рассмотрим следующий пример кода: #include <iostream> using namespace std; class base { public: base() { bar(); //Line1 this->bar(); //Line2 base *bptr = this; bptr->bar(); //Line3 ((base*)(this))->bar(); //Line4 } virtual void bar() = 0; }; ...

3 ответа

Должен ли деструктор абстрактного класса быть чисто виртуальным?

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