搜索
bottom↓
回复: 3

C++循序渐进

[复制链接]

出0入0汤圆

发表于 2010-1-11 13:25:57 | 显示全部楼层 |阅读模式
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)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2010-1-11 13:26:28 | 显示全部楼层
自己坐个沙发!!!

出425入0汤圆

发表于 2010-2-4 10:33:48 | 显示全部楼层
刚学这个,还看不懂。

出0入0汤圆

发表于 2010-2-4 10:36:56 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-20 15:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表