クラスの設定があり、そのクラスから継承を使用しています。C++未解決の外部シンボル
#include "a.h"
#include <iostream>
class b: public a
{
public:
void print();
};
そして、私はこれらのファイルの両方を含めていますメインファイルでb.cpp
#include "a.h"
#include "b.h"
void b::print(){};
中:ファイルBHでファイルああ
class a
{
public:
virtual void print();
};
で
#include "a.h"
#include "b.h"
ただし、仮想関数printの未解決のシンボルが表示されます。ファイルa.objがエラーを生成するファイルとしてリストされています。何が間違っていますか? b.cppをクラス定義の下のb.hに移動すると、うまく動作します。
私の推測の終わりにセミコロンが必要だと思います。 –
純粋な仮想の意味は何ですか? –
ああ私はそれを得た。私は仮想宣言の最後に= 0を加えなければならなかった。将来の視聴者のためのhttp://en.wikipedia.org/wiki/Virtual_function#C.2B.2B_2ありがとうございました。 –