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

4 ответа

Если подкласс может изменить определение foo_ ?, но потребителям нужна статическая функция (для эффективности)? Или для шаблона делегирования?

ел следующий код в библиотеке: class Bar { public: bool foo(int i) { return foo_(i); } private: virtual bool foo_(int i) = 0; };Теперь я задаюсь вопросом: почему вы используете это косвенное обращение? Могут ли быть причины, по которым ...

6 ответов

Оператор - это метод со специальным синтаксисом. Вы можете рассматривать это как любой другой метод ...

тор присваивания в C ++ можно сделать виртуальным. Почему это требуется? Можем ли мы сделать других операторов виртуальными тоже?

7 ответов

переопределение

у меня занятияFoo а такжеBar настроить так: class Foo { public: int x; virtual void printStuff() { std::cout << x << std::endl; } }; class Bar : public Foo { public: int y; void printStuff() { // I would like to call Foo.printStuff() here... ...

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

3 ответа

Вы можете получить указатель на него, например, так:

у вас есть такая структура struct A { void func(); };и ссылка, как этот A& a;вы можете получить указатель на егоfunc метод как это: someMethod(&A::func);А что если этот метод является виртуальным, и вы не знаете, что это во время выполнения? ...

4 ответа

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

+ мы можем сделать это: struct Base { virtual Base* Clone() const { ... } virtual ~Base(){} }; struct Derived : Base { virtual Derived* Clone() const {...} //overrides Base::Clone }; Тем не менее, следующее не будет делать то же самое: struct ...

1 ответ

 вы вводите неопределенное поведение земли.

ак вернулся как раз вовремя. Я получаю странную ошибку: 'B::blah': overriding virtual function return type differs and is not covariant from 'A::blah'Вот код, вызывающий проблему: class A { public: class Inner { }; virtual Inner blah() = 0; }; ...

9 ответов

Почему C # реализует методы как не виртуальные по умолчанию?

В отличие от Java, почему C # обрабатывает методы как не виртуальные функции по умолчанию? Это скорее проблема производительности, чем другие возможные результаты? Мне напоминают о прочтении параграфа Андерса Хейлсберга о ...

5 ответов

Конструктор не может быть виртуальным

В одном изС ++ уроки в интернете [http://www.bogotobogo.com/cplusplus/constructor.php]я узнал ниже описание того, почему конструктор не может быть виртуальным Мы не можем объявить виртуальный конструктор. Мы должны указать точный тип объекта во ...

4 ответа

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

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

5 ответов

Должна ли виртуальная функция иметь определение?

Необходимо ли иметь определение виртуальной функции? Рассмотрим этот пример программы ниже: #include <iostream> using namespace std; class base { public: void virtual virtualfunc(); }; class derived : public base { public: void virtualfunc() ...