| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
C++运算符重载转换运算符
作者:佚名    文章来源:网络    点击数:    更新时间:2006-9-12
 

  由于类的转换运算符与类的运算符重载函数,在某些地方上使用的时候,有功能相似的地方,如果两者都存在于类中,那么虽然运行结果正确,但其运行过程会出现一些意向不到的步骤,导致程序运行效率降低。

  下面的例子就是这个情况,代码如下:

 C++ 代码 
 
//例4 
 
//程序作者:管宁         
//站点:www.cndev-lab.com         
//所有稿件均有版权,如要转载,请务必著名出处和作者      
   
#include <iostream>   
using namespace std;   
   
class Test     
{     
    public
        Test(int a = 0) 
        { 
            cout<<this<<":"<<"载入构造函数!"<<a<<endl; 
            Test::a = a; 
        } 
        Test(Test &temp) 
        { 
            cout<<"载入拷贝构造函数!"<<endl; 
            Test::a = temp.a; 
        } 
        ~Test() 
        { 
            cout<<this<<":"<<"载入析构函数!"<<this->a<<endl; 
            cin.get(); 
        } 
        Test operator +(Test& temp2) 
        { 
            cout<<this<<"|"<<&temp2<<"载入加运算符重载函数!"<<endl; 
            Test result(this->a+temp2.a);   
            return result;   
        } 
        operator int() 
        { 
            cout<<this<<":"<<"载入转换运算符函数的内存地址:"<<this->a<<endl; 
            return Test::a; 
        } 
    public
    int a; 
}; 
int main() 

    Test a(100),b(100); 
    cout<<"a的内存地址:"<<&a<<" | b的内存地址:"<<&b<<endl; 
    Test c=a+b; 
    cout<<"c的内存地址:"<<&c<<endl; 
    cout<<c.a<<endl; 
    system("pause"); 
}


  运行过程见下图。

上一页  [1] [2] [3] [4] 下一页


相关文章