我遇到了C++类的这个问题。我想获得指向myBar
对象的对象,并将其存储在quxBar
中。原因是我希望能够使用quxBar->getX()
来检查价值,但我也想避免意外地从Qux中调用它,所以我尝试使用Bar const*
。C++指向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)
。
也许我的方法是完全错误的,但使用当前的“技能”:)我不知道如何解决它。
在此先感谢您的任何帮助和建议。
你能至少发布实际编译的代码吗?当我修复了所有显而易见的编译错误(不正确的分号等)时,我得到了以下几个错误:'将const Bar'作为'int'的Bar参数'getX()'丢弃限定符' 。 – 2010-10-12 11:06:58
我认为你的编译器有问题。你使用什么编译器? – Goz 2010-10-12 11:34:33
你根本没有得到一个错误或只是在那一行?你需要在你的类定义的最后一个分号。 – CashCow 2010-10-12 12:28:52