Хотелось бы лучше понять, как использовать статическое поле методом при наличии идиомы PIMPL.
Рассмотрим следующий код.
Файл MyClass.h:
#ifndef MYCLASS
#define MYCLASS
class MyClass{
public:
void method();
static void static_method();
private:
Type field;
static Type *static_field;
}
#endif
Файл MyClass.cpp:
#include MyClass.h
void MyClass::method(){
/*OK method definition*/
field = new Type(); /*OK field construction*/
}
void MyClass::static_method(){
/*NOT WORKING method declaraion */
static_field = new Type(); /*not working */
}
У меня есть 2 ошибки:
- не может объявить функцию-член static_method для статической связи
- static_field не было объявлено в этой области
Я не очень знаком с идиомой прыщей.
Таким образом, мой вопрос заключается в том, как получить статические методы и объявления полей для соблюдения идиомы PIMPL и успешной компиляции?
Что я делаю не так в этом коде?
Как мне изменить свой код?