如何从嵌套类属性中获取值

时间:2017-12-21 10:13:29

标签: c++

我有两个类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.我应该怎么做才能获得细菌数的正确值?

2 个答案:

答案 0 :(得分:2)

良好做法是避免对所有内容使用相同的名称,例如number = number;。哪个number位于左侧和右侧?

至少尝试消除歧义:

this->number = number;

答案 1 :(得分:0)

问题出现在你的 setNumber 函数中:当您编写&#34; 数字&#34;时,它指的是最新的&#34; 编号&#34;编译器知道的变量。在这种情况下,它不是你所期望的类成员,而是参数。

像这样更改你的功能:

void setNumber(int n) {
    number = n;
    cout << number << endl;
}