#include <stdio.h>

class HelloClass
{
    float t;
public:
    HelloClass(float x) : t(x) {};
    float Add(HelloClass a);
};

float HelloClass::Add(HelloClass b)
{
    return t + b.t; // How is b.t accessible here?
}

int main()
{
    HelloClass a(2), b(3);
    printf("hello %f\n", a.Add(b));
    return 0;
}
您好,以上代码已编译。但是我无法理解b.t的可访问性吗?有人可以阐明这一点吗?

最佳答案

这是预期的行为, private members可以由成员函数访问,即使它们来自其他实例。
(强调我的)

关于c++ - 传递对象的C++私有(private)变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62725841/

10-12 23:59