У меня есть виртуальный метод C++, который я определяю в файле .h и реализую в .cc-файле. Должна ли реализация в файле .cc быть помечена как виртуальная или просто объявление в файле .h? Например, мой заголовок имеет:Должен ли виртуальный реализатор C++ в файле .cpp быть помечен как виртуальный?
virtual std::string toString() const;
Метод реализован в моем .cc:
std::string
MyObject::toString() const {
[implementation code]
}
Если реализация будет отмечена виртуальной, или выше код ОК? Это имеет значение?
только декларация –
Это ** незаконно **, чтобы отметить реализацию как виртуальную. –
Ваш компилятор даже дает вам выбор? Если да, то какой компилятор? – juanchopanza