抽象类和对象
Abstract class and object
我得了头等课:
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;
}
Visual不能创建对象'a',因为它告诉我它是一个抽象对象。
为什么?
我已经用VC10尝试过了。它给了我错误C2082告诉我像正式参数a的重新定义(我有一个德国安装,所以你的错误信息可能不同)。只需重命名变量:
ConcreteClass* ConcreteClass::CreateConcreteClass(char* a)
{
return new ConcreteClass(a);
}
编辑:为不返回临时
地址添加static第二次编辑:使CreateConcreteClass为静态工厂函数
相关文章:
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- E0322:不允许使用抽象类类型 " " 的对象
- 如何将子类作为函数的参数传递给期望基类,然后将该对象传递到指向这些抽象类对象的指针向量中?
- 从从该抽象类派生的 Python 对象强制转换C++抽象类C++
- C++ 将一组对象传递给抽象类的成员函数
- 分配抽象类类型 c++ xcode 的对象
- C++ abort() 在函数内的抽象类对象指针调用上
- 复制从抽象类派生的对象
- 分配抽象类类型为"CObject"的对象
- 错误消息:不允许抽象类类型 "X" 的对象:纯虚拟"Y"没有覆盖器
- 错误:不允许使用抽象类类型的对象
- 使用抽象类的类和实现此抽象类的创建对象
- 我在代码中有一个错误,错误是:(智能感知:不允许抽象类类型"HourlyWorker"的对象:)
- 如何在不指定模板类型的情况下声明通用抽象类的对象
- 如何返回从抽象类得出的类的对象
- 抽象类对象和纯虚拟析构函数
- 如何在 C++ 中创建抽象类的对象或数据结构?
- 不允许抽象类的对象
- 创建抽象类 C++ 的对象
- 尝试定义派生自抽象类的类类型的对象时出错