在C++類中定義了虛函數,但未對其進行實現,會導致一個編譯錯誤。
工具/原料
g++編譯器
錯誤使用virtual關鍵
class Factory
{
public:
virtual double Add(double a, double b); //未實現虛函數,導致編譯錯誤
};
class AddFactory:public Factory
{
public:
double Add(double a, double b) { return a+b; }
};
編譯上面的代碼會導致如下編譯錯誤:
undefined reference to `vtable for Facytory`
錯誤原因,因為沒有實現Factory中的虛函數Factory::Add
解決方法:
實現Factory::Add函數
double Factory::Add(double a, double b)
{
return 0;
}