C++ クラスでこの問題が発生しています。myBar
オブジェクトへのポインタを取得して に格納したいと思いますquxBar
。理由は を使って値を確認できるようにしたいのですquxBar->getX()
が、誤って Qux から変更してしまわないようにしたいので を使ってみBar const*
ました。
class Bar
{
private:
int x;
public:
void setX(int X) { x = X; };
int getX(){ return x };
}
class Foo
{
private:
Bar *myBar;
public:
Bar const* getPointerToBar(){ return myBar; };
}
class Qux
{
void myMethod();
Bar const* quxBar;
Foo *mainFoo;
}
void Qux::myMethod()
{
quxBar = mainFoo->getPointerToBar();
std::cout << quxBar->getX();
quxBar->setX(100); // HERE!!!
std::cout << quxBar->getX(); // returns 100
}
残念ながらquxBar->setX(100)
、コンパイルエラーなしで実行できるため、機能しません。
おそらく私のアプローチは完全に間違っていますが、現在の「スキル」を使用しています:)修正方法がわかりません。
ヘルプと提案をお寄せいただきありがとうございます。