c++ 类成员的屏蔽与作用域
//类成员的屏蔽与作用域【代码解释】
#include
class test {
public:
int geti()
{
//i=1;
return i;
}
int getj()
{
//j=2;
return j;
}
int* getp()
{
return p;
}
void free()
{
delete p;
}
test (int v)
{
int i = 1;
int j = 2;
p = new int; //涉及深拷贝
*p = v;
}
test (const test& t )
{
i = t.i;
j = t.j;
p = new int ;
*p = *t.p; //这是类的内部 private 成员函数 和 函数 可以被访问
}
private:
int i ;
int j;
int *p;
};
int main()
{
test t1(3);
test t2 = t1; //test t2 (t1);
printf("i1 is %d,i2 is %d,p1 is %dn",t1.geti(),t2.geti(),*t1.getp()); // 在类的作用域外
//访问类的私有对象只能通过公有成员函数。
printf("j1 is %d,j2 is %d,p2 is %dn",t1.getj(),t2.getj(),*t2.getp());
t1.free();
t2.free();
return 0;
}