我有一個練習的小問題。我有2類:抽象函數
第一:
namespace Abstract{
class AbstractClass{
public:
virtual void setName(const std::string & _name) =0;
virtual void print() =0;
void DynamicCastTest(){};
};
}
第二:
class ConcreteClass : public Abstract::AbstractClass{
std::string type;
public:
ConcreteClass();
ConcreteClass(const char* a);
~ConcreteClass();
static Abstract::AbstractClass* CreateConcreteClass(const char* a);
virtual void setName(const std::string & _name);
virtual void print();
};
而第二類的cpp文件:
#include "concreteClass.h"
ConcreteClass::ConcreteClass(){
type = "";
}
ConcreteClass::ConcreteClass(const char* a){
type = a;
}
ConcreteClass::~ConcreteClass(){}
static ConcreteClass* CreateConcreteClass(const char* a){
return new ConcreteClass(a);
}
void ConcreteClass::setName(const std::string & _name){
type = _name;
}
void ConcreteClass::print(){
std::cout<<type<<std::endl;
}
但在我的主,當我打電話時:
const char* s = "";
Abstract::AbstractClass* a = ConcreteClass::CreateConcreteClass(s);
在編譯時,Visual了我一個錯誤LNK2019:
? 「市民:靜態類具體類* __cdecl具體類:: CreateConcreteClass(字符常量*)」(CreateConcreteClass @具體類@@ SAPAV1 @ PBD @ Z)
在最後一行。爲什麼?
錯誤標題:這是C++代碼,而不是C!並請顯示完整的錯誤信息。 –
錯誤所指的「符號」是什麼? –
編輯完整錯誤代碼 – Apaachee