【发布时间】:2014-04-20 15:51:46
【问题描述】:
我有一个私有布尔数据成员(值),它是 Bar 类的一部分,我正在尝试使用另一个类 Foo 的指针来访问它。但是,当我尝试使用指针访问数据时,就像我之前设置的数据已重置返回错误值一样。 这是我正在谈论的示例,Bar 类的头文件:
class Foo;
class Bar {
private:
bool value;
public:
void read();
bool isValue();
};
这是源文件的示例。
void Bar::read() { //setter method that sets value to true.
value = true;
}
bool Bar::isValue() { //at this point if I called this it would
return value; //return true as expected.
}
Foo 类的标题:
class Bar;
class Foo {
private:
Bar* barPtr; //a pointer to class Bar.
public:
void readValue();
};
和源文件:
void Foo::readValue() {
cout << barPtr->isValue(); //pointer that accesses and displays value.
}
这最后一步是我遇到问题的地方。返回的值为0,false,我不明白为什么。当我在 main 中调用 cout isValue() 时,它返回正确的值 true。我唯一能想到的可能是我需要一个复制构造函数?如果是这种情况,我不完全确定如何针对这种情况实施。
谢谢!
【问题讨论】:
-
你没有在任何地方设置
value,所以它的值是不确定的。 -
你了解隐私的概念吗?
标签: c++ class pointers boolean