抽象クラスの基本クラスです。私はオブジェクトをインスタンス化できない抽象ベースから新しいクラスを継承しています。コンパイラが伝え理由は抽象クラスの継承
cannot allocate an object of abstract type
はこれを克服するためにどのような方法があることです。
抽象クラスの基本クラスです。私はオブジェクトをインスタンス化できない抽象ベースから新しいクラスを継承しています。コンパイラが伝え理由は抽象クラスの継承
cannot allocate an object of abstract type
はこれを克服するためにどのような方法があることです。
これは、あなたが派生クラス内のすべての純粋
virtual
機能を実装していませんでした示し
抽象型のオブジェクトを割り当てることができません。最初に、すべての純粋仮想関数を実装し、このクラスのインスタンスを作成します。
あなたも、単一純粋virtual
機能を持つクラスのインスタンスを作成することはできません!
は純粋仮想関数が
class sample
{
public:
virtual void f(); //virtual function
virtual void g()=0; //pure virtual function
};
としてここだけg()
は純粋仮想関数である、ゼロで割り当てられているものであり、覚えておいてください!これにより、sample
はabstract classになり、派生クラスがg()
を定義していない場合、抽象クラスにもなります。両方とも抽象クラスなので、これらのクラスのインスタンスを作成することはできません!
C++: Create abstract class with abstract method and override the method in a subclassは、この問題に対する良い答えがあります。
ゆうパールに感謝します。それは有益だった – CHID
...派生クラスによってはオーバーライドされていません。 –
ありがとう、@ナワズ。うまく働いた。 – CHID