关于private成员变量的一些疑问
谭浩强书中的例子
#include <iostream>
using namespace std;
class Complex;
class Complex
{
public:
Complex(){real = 0; imag = 0;}
Complex(double r, double i){real = r; imag = i;}
Complex complex_add(Complex &c2);
void display();
private:
double real;
double imag;
};
Complex Complex :: complex_add(Complex &c2)
{
Complex c;
c.real = real + c2.real;
c.imag = imag + c2.imag;
return c;
}
void Complex :: display()
{
cout<<"("<<real<<","<<imag<<")"<<endl;
}
int main(void)
{
Complex c1(3, 4), c2(4, 5), c;
c = c1.complex_add(c2);
c.display();
return 0;
}
有点疑问的是complex_add为什么可以访问c2的私有数据成员?private是限定本类中的函数可以访问私有数据成员,还是本对象中的函数可以访问私有数据成员?
[解决办法]
同一类即可访问
[解决办法]
Complex complex_add是成员函数啊,成员函数就可以访问。
[解决办法]
同一类的所有对象都共享类中的每一个函数,并不是每一个对象都有各自独立的函数;
所以private是限定本类中的函数可以访问私有数据成员
[解决办法]
你可以看下this指针