| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 484 人关注过本帖
标题:看不懂这中表示方式
只看楼主 加入收藏
jjg
Rank: 2
等 级:论坛游民
帖 子:67
专家分:42
注 册:2009-8-19
结帖率:46.15%
收藏
已结贴  问题点数:20 回复次数:3 
看不懂这中表示方式
程序代码:
#include <iostream>    
using namespace std;    
    
class Test      
{      
    public:  
        Test(int a = 0)  
        {  
            cout<<this<<":"<<"载入构造函数!"<<a<<endl;  
            Test::a = a;       //这是什么意思???a不是已经在类中吗?干嘛还这样写,还有就是我为什么不把Text::a改写成M之类的字母呢?
        }  
        Test(Test &temp)  
        {  
            cout<<"载入拷贝构造函数!"<<endl;  
            Test::a = temp.a;  
        }  
        ~Test()  
        {  
            cout<<this<<":"<<"载入析构函数!"<<this->a<<endl;  
            cin.get();  
        }  
        operator int()  
        {  
            cout<<this<<":"<<"载入转换运算符函数的内存地址:"<<this->a<<endl;  
            return Test::a;  
        }  
    public:  
    int a;  
};  
int main()  
{  
    Test a(100),b(100),c;  
    cout<<"a的内存地址"<<&a<<" | b的内存地址"<<&b<<endl;  
    c=Test((int)a+(int)b);//显示式转换  
    //c=a+b;//隐式转换  
    cout<<"c的内存地址"<<&c<<endl;  
    cout<<c.a<<endl;     //c.a又是什么意思??    system("pause");  
}
搜索更多相关主题的帖子: 表达方式式的问题 
2009-08-23 15:47
ly861014
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:66
专家分:177
注 册:2008-10-28
收藏
得分:6 
回复 楼主 jjg
Test::a = a;之所以写成Test::a,是为了与形参a,即等号后面的那个a区分,其实你把构造函数形参表里的int a = 0改成int b = 0,然后构造函数体中相应的a改成b,则Test::a直接写成a就行,这时候整个构造函数改为:
Test(int b = 0)  
        {   
            cout<<this<<":"<<"载入构造函数!"<<b<<endl;  
            a = b;      
        }  
那些temp.a, this->a, (int)a, c.a都是指的类对象的数据成员a
这个例子应该是在讲变量作用域时给的吧,应该是为了理解作用域才举这样的例子,一般情况下是避免这种易混淆的变量命名的。
2009-08-23 22:51
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:6 
回复 楼主 jjg
我也觉得是故意写成这样的,实际编程谁会故意找这么多重名的增加困难……
2009-08-24 00:28
明次
Rank: 5Rank: 5
来 自:China
等 级:职业侠客
帖 子:166
专家分:303
注 册:2009-1-11
收藏
得分:6 
cout<<c.a<<endl;    //c.a又是什么意思??
用C对象来调用这个成员

、明次℡!           QQ:604622530
2009-08-24 20:34
快速回复:看不懂这中表示方式
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016231 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved