我在使用 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)
没有编译错误的情况下执行。
可能我的方法是完全错误的,但是使用当前的“技能”:) 我不知道如何解决它。
提前感谢您的任何帮助和建议。