Вопросы с тегом «virtual»

223
Зачем использовать «виртуальный» для свойств класса в определениях модели Entity Framework?

В следующем блоге: http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx Блог содержит следующий пример кода: public class Dinner { public int DinnerID { get; set; } public string Title { get; set; } public DateTime EventDate { get; set; } public...

176
Чистая виртуальная функция с реализацией

Мое основное понимание состоит в том, что для чисто виртуальной функции нет реализации, однако мне сказали, что может быть реализация для чисто виртуальной функции. class A { public: virtual void f() = 0; }; void A::f() { cout<<"Test"<<endl; } Код выше ОК? Какова цель сделать его чисто...

154
Зачем нам нужен чистый виртуальный деструктор в C ++?

Я понимаю необходимость виртуального деструктора. Но зачем нам чистый виртуальный деструктор? В одной из статей C ++ автор упомянул, что мы используем чистый виртуальный деструктор, когда хотим сделать класс абстрактным. Но мы можем сделать класс абстрактным, сделав любую функцию-член чисто...

147
Почему чисто виртуальная функция инициализируется 0?

Мы всегда объявляем чисто виртуальную функцию как: virtual void fun () = 0 ; Т.е. оно всегда присваивается 0. Что я понимаю, так это то, что это инициализирует запись vtable для этой функции в NULL, и любое другое значение здесь приводит к ошибке времени компиляции. Это понимание правильно или...

141
Статические виртуальные члены с ++?

Возможно ли в C ++ иметь функцию-член одновременно staticи virtual? По-видимому, нет простого способа сделать это ( static virtual member();это ошибка компиляции), но есть ли хотя бы способ добиться того же эффекта? IE: struct Object { struct TypeInformation; static virtual const TypeInformation...

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

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

82
Преимущества чистой функции

Сегодня читал про чистую функцию, запутался в ее использовании: Функция называется чистой, если она возвращает тот же набор значений для одного и того же набора входных данных и не имеет никаких наблюдаемых побочных эффектов. например strlen(), это чистая функция, а rand()нечистая. __attribute__...

80
C ++ - предупреждение о перегрузке виртуальной функции от clang?

clang выдает предупреждение при компиляции следующего кода: struct Base { virtual void * get(char* e); // virtual void * get(char* e, int index); }; struct Derived: public Base { virtual void * get(char* e, int index); }; Предупреждение: warning: 'Derived::get' hides overloaded virtual function...

79
Разница между виртуальным, переопределением, новым и запечатанным переопределением

Я довольно путать между некоторыми понятиями объектно - ориентированного программирования: virtual, override, newи sealed override. Кто-нибудь может объяснить различия? Я совершенно ясно понимаю, что если будет использоваться метод производного класса, можно использовать overrideключевое слово,...