我有两个类Probe和Bactery。在Probe类里面我有Bactery类实例。我想知道如何通过探针对象获得细菌数量。为此,我创造了二传手和吸气剂。像这样:
class Bactery {
private:
int number;
public:
void setNumber(int number) {
number = number;
cout << number << endl;
}
int getNumber() {
return number;
}
};
class Probe {
public:
Bactery bactery;
};
int main()
{
Probe probe;
probe.bactery.setNumber(55);
int x = probe.bactery.getNumber();
cout << x << endl;
return 0;
}
打印的 x 值是一些随机数,而不是55.我应该怎么做才能获得细菌数的正确值?
答案 0 :(得分:2)
良好做法是避免对所有内容使用相同的名称,例如number = number;
。哪个number
位于左侧和右侧?
至少尝试消除歧义:
this->number = number;
答案 1 :(得分:0)
问题出现在你的 setNumber 函数中:当您编写&#34; 数字&#34;时,它指的是最新的&#34; 编号&#34;编译器知道的变量。在这种情况下,它不是你所期望的类成员,而是参数。
像这样更改你的功能:
void setNumber(int n) {
number = n;
cout << number << endl;
}