我上了一堂课:
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(char* a);
~ConcreteClass();
static ConcreteClass* CreateConcreteClass(char* a);
virtual void setName(const std::string & _name);
virtual void print();
};
但是当我想定义我的函数 CreateConcreteClass(char*) 时:
static ConcreteClass* CreateConcreteClass(char* a){
ConcreteClass a;
}
视觉无法创建对象“a”,因为它告诉我它是一个抽象对象。
为什么 ?