-1
2つのクラスと実際のあいまいさ。だから、2つの仮想抽象メソッドで50%の確率でC++未解決の外部シンボル
class World : public ICommandLine
{
public:
virtual void CL_RecieveCommand(string commandLine) override;
virtual void CL_AssignCommandExecMaps() override;
};
問題、エラーリスト:
1>World.obj : error LNK2019: unresolved external symbol "public: virtual void __cdecl ICommandLine::CL_AssignCommandExecMaps(void)" ([email protected]@@UEAAXXZ) referenced in function "public: __cdecl ICommandLine::ICommandLine(void)" ([email protected]@[email protected])
何の手段次回関連するコードを持っているICommandLine由来
class ICommandLine
{
public:
virtual void CL_AssignCommandExecMaps() abstract;
virtual void CL_RecieveCommand(string) abstract;
};
とクラス世界:
クラスICommandLineは、次の関連するコードを持っていますCL_RecieveCommandは上書きされますが、CL_AssignCommandExecMapsは未解決です。 この問題は、抽象的なキーワードの代わりに{}を付けることで簡単に解決できますが、私はこのクラスを抽象的にする必要があります。
両方のメソッドの定義が存在するにもかかわらず、このエラーが発生するのはなぜですか?
'abstract'がC++キーワードではありません。 Microsoftの拡張機能である場合とそうでない場合があります。この 'virtual void CL_AssignCommandExecMaps()= 0;'のような純粋な仮想メソッドを定義したいかもしれません。 –