Если у меня есть класс с одной чистой виртуальной функцией, все ли функции должны быть чистыми виртуальными?C++ pure virtual function
#pragma once
class Shape {
private:
static int countShape;
public:
virtual float perimeter() const=0;
virtual float area() const=0;
virtual void print();
virtual void input();
void setCountShape();
int getCountShape()const{return countShape;};
Shape(void);
~Shape(void);
};
Я попытался запустить свою программу, и она пишет messege:
Error 3 error LNK2001: unresolved external symbol "public: virtual void __thiscall Shape::input(void)" ([email protected]@@UAEXXZ)
Error 1 error LNK2001: unresolved external symbol "public: virtual void __thiscall Shape::print(void)" ([email protected]@@UAEXXZ)
Нет, но если это не чисто виртуальный, вам необходимо предоставить определение для него. –
Возможный дубликат [Что такое неопределенная ссылка/неразрешенная ошибка внешнего символа и как ее исправить?] (Http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external- symbol-error-and-how-do-i-fix) – dwcanillas
Вы должны прочитать эту ошибку, и вы бы узнали: чистые виртуальные функции не являются проблемой. –