我有这个c++类,我想初始化这个类型的对象:
class MyClass
{
public:
/**
* Creates an instance of this class.
* @return Pointer to the created object.
*/
static MyClass * Create ();
protected:
// Explicit protected Constructor
//and Copy-Constructor, use Create() to create an instance of this object.
MyClass();
}为了创建一个实例,我执行了以下操作:
static MyClass * m_object = myClass.Create();但我收到了那些警告和错误:
warning C4832: token '.' is illegal after UDT 'MyClass'
error C2275: 'MyClass' : illegal use of this type as an expression
error C2228: left of '.Create' must have class/struct/union如何正确实例化此对象?
发布于 2014-03-21 10:45:52
在C++中,静态变量/方法使用范围解析(::)操作符进行访问。
将代码更改为
static MyClass * m_object = MyClass::Create();发布于 2014-03-21 10:49:57
要调用静态成员,必须使用类名而不是对象名。对象实例化应该是这样的。
MyClass *m_object = MyClass::Create();https://stackoverflow.com/questions/22556530
复制相似问题