下面的代碼段產生一個錯誤:C++抽象類參數誤差的解決方法
#include <iostream>
using namespace std;
class A
{
public:
virtual void print() = 0;
};
void test(A x) // ERROR: Abstract class cannot be a parameter type
{
cout << "Hello" << endl;
}
是否有解決方案/工作此錯誤其他/比
virtual void print() = { }
替換
virtual void print() = 0;
更好
編輯:我希望能夠通過任何類擴展/實現基類A作爲參數通過使用聚態度(即A* x = new B() ; test(x);
)
乾杯
根據定義,Abstarct類不應該單獨實例化。它的方法需要被派生類重寫。只是好奇,你想通過這樣做達到什麼目的? – Mahesh 2012-07-10 21:17:11
我想做類似於A x = new B()的類,並通過擴展/實現A的任何類。我應該更好地指定這個問題。 – Cemre 2012-07-10 21:18:48
在嘗試提出解決方案/解決方法之前,我們需要了解問題。將抽象類作爲「按價值」參數傳遞的想法是毫無意義的。你想做什麼? – AnT 2012-07-10 21:19:04