Объектная реализация в c ++ с защищенным конструктором

У меня есть этот класс 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

Как правильно создать экземпляр этого объекта?

0

Решение

В C ++ доступ к статическим переменным / методам осуществляется с использованием разрешения области видимости (: :).

измени свой код на

static MyClass * m_object = MyClass::Create();
4

Другие решения

Для вызова статического члена вы должны использовать имя класса вместо имени объекта. Ваш экземпляр объекта должен быть таким.

MyClass *m_object = MyClass::Create();
1

По вопросам рекламы [email protected]