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イディオムを尊重し、それを正常にコンパイルするために、静的メソッドとフィールド宣言をどのように達成するかです?
このコードで何が間違っていますか?
コードを変更するにはどうすればよいですか?