在第15课 类与封装的概念 : 明确的强调了 类的 成员访问权限 和 成员作用域 没有半毛钱关系 !!!
成员作用域 : 只在类里 在类中 可以随意使用 private 和 public 成员(函数和变量) ;
成员访问权限 : 在类外 访问类成员 只能通过类的对象 ,能否访问 成功取决于 成员的访问级别。
(通常对私有成员的访问 通过 public函数实现,在public成员函数中实现对私有数据的操作)
在19 课的例子中 对这个一概念 有了新的了解:附上例子
#include<stdio.h>
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 %d\n",t1.geti(),t2.geti(),*t1.getp()); // 在类的作用域外
//访问类的私有对象只能通过公有成员函数。
printf("j1 is %d,j2 is %d,p2 is %d\n",t1.getj(),t2.getj(),*t2.getp());
t1.free();
t2.free();
return 0;
}