C++循序渐进
1、类内部private/protected/public的使用。(一)、类成员的访问。不管是类的成员变量还是成员函数,对它们的访问都必须通过类的对象来完成,也就是说必须实例化类的对象,然后才能通过类对象来访问类成员。
void main()
{
CBaseTest Bct;//声明一个CBaseTest类对象
//以下对类成员的访问都将失败
iBPri=1;
BPri();
iBPro=2;
BPro();
iBPub;
BPub();
}
Output窗口错误代码如下:
F:\zs\Classtest\Classtest.cpp(101) : error C2065: 'iBPri' : undeclared identifier
F:\zs\Classtest\Classtest.cpp(102) : error C2065: 'BPri' : undeclared identifier
F:\zs\Classtest\Classtest.cpp(104) : error C2065: 'iBPro' : undeclared identifier
F:\zs\Classtest\Classtest.cpp(105) : error C2065: 'BPro' : undeclared identifier
F:\zs\Classtest\Classtest.cpp(107) : error C2065: 'iBPub' : undeclared identifier
F:\zs\Classtest\Classtest.cpp(108) : error C2065: 'BPub' : undeclared identifier
可以修改代码如下:
void main()
{
CBaseTest Bct;//声明一个CBaseTest类对象
Bct.iBPub;
Bct.BPub();
}
运行结果如下:
基类私有变量:iBPri=3
基类保护变量:iBPro=3
基类公有变量:iBPub=3
基类公有函数调用了!
基类私有变量:iBPri=1
基类私有函数调用了!
基类私有变量:iBPri=2
基类保护变量:iBPro=2
基类保护函数调用了!
基类私有变量:iBPri=1
基类私有函数调用了!
Press any key to continue
为什么会是这样子哪?(至于我为什么不通过访问CBaseTest类对象Bct访问iBPro、BPro()、iBPub和BPub()这4个类成员,稍后的学习再讨论。)我不是已经在类内部对这些成员声明了吗?为什么还是运行出错哪?我们可以把类即由class定义的这种数据类型看成是由简单数据类型(比如int、float、double等)构成的复杂数据类型,它是一个有机的整体,不可分割。它内部的成员不可以拿出来单独使用,必须通过类的实例来访问。从上述的运行结果就可以看出来。
int iBPri;
void BPri();
int iBPro;
void BPro();
int iBPub;
void BPub();
VC++6.0工程ourdev_524816.rar(文件大小:212K) (原文件名:Classtest.rar) 自己坐个沙发!!! 刚学这个,还看不懂。 mark
页:
[1]