ModelListener
を継承するクラスPresenter
があります。前方宣言されたクラスの参照解除オブジェクト
class Model;
class ModelListener
{
public:
ModelListener() : model(0) {}
virtual ~ModelListener() {}
void bind(Model* m) { model = m; }
protected:
Model * model;
};
また、私はインスタンスPresenter presenter
を持っています。私がpresenter->model->PrintName()
と呼ぶとき、model
がpresenter
に保護されているので、それはもちろんコンパイルされません。しかし、私はその後、さらにこの
class Model;
class ModelListener
{
public:
ModelListener() : model(0) {}
virtual ~ModelListener() {}
void bind(Model* m) { model = m; }
//protected:
Model * model;
};
のように国民にModel * model
を変更した場合、私は入手できます:
MyView.cpp: error: invalid use of incomplete type 'class Model' presenter->model->PrintName(); ModelListener.hpp: error: forward declaration of 'class Model'.
public
なくprotected
を行くとき、私はこのエラーが出るのはなぜ?