Visual Studio 2015, 2 sınıf ve gerçek muğlaklık. YaniC++ çözümlenmemiş harici sembol, 2 sanal soyut yöntemde% 50 şans ile
class World : public ICommandLine
{
public:
virtual void CL_RecieveCommand(string commandLine) override;
virtual void CL_AssignCommandExecMaps() override;
};
sorunu, hata listesi:
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])
değeri ne anlama gelir sonraki alakalı kodu vardır ICommandLine türetilen
class ICommandLine
{
public:
virtual void CL_AssignCommandExecMaps() abstract;
virtual void CL_RecieveCommand(string) abstract;
};
Ve sınıfını Dünya:
Sınıf ICommandLine sonraki alakalı kodu vardır CL_RecieveCommand, yalnızca iyi bir şekilde geçersiz kıldı, ancak CL_AssignCommandExecMaps hala çözümlenmemiş. Bu problem, soyut anahtar kelimeler yerine {} konularak kolayca çözülebilir, ancak soyut olmak için bu sınıfa gerçekten ihtiyacım var.
Her iki yöntem için tanımlamalar mevcut olsa bile bu hatayı neden alıyorum?
'abstract' bir C++ anahtar kelime değildir. Microsoft uzantısı olabilir veya olmayabilir. Bu sanal sanal CL_AssignCommandExecMaps() = 0; gibi saf sanal yöntemleri tanımlamak isteyebilirsiniz. –