日期:2011-03-22 13:55:00 来源:本站整理
C++运算符重载转换运算符[VC/C++编程]
本文“C++运算符重载转换运算符[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
为什么需求转换运算符?
大家知道关于内置范例的数据我们可以通过强迫转换符的利用来转换数据,比方(int)2.1f;自定义类也是范例,那么自定义类的对象在很多情形下也需求支持此操作,C++供应了转换运算符重载函数,它使得自定义类对象的强转换成为大概.
转换运算符的生命方法对比分外,办法以下:
operator 类名();
转换运算符的重载函数是没有返回范例的,它和类的构造函数,析构函数一样是不遵守函数有返回范例的规定的,他们都没有返回值.
下面我看一个例子,看看它是若何工作的:
//例1
//程序作者:管宁
//站点:www.cndev-lab.com
//全部稿件均有版权,如要转载,请务必闻名出处和作者
#include<iostream>
usingnamespacestd;
classTest
{
public:
Test(inta=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();
}
operatorint()//转换运算符
{
cout<<this<<":"<<"载入转换运算符函数!"<<this->a<<endl;
returnTest::a;
}
public:
inta;
};
intmain()
{
Testb(99);
cout<<"b的内存地址"<<&b<<endl;
cout<<(int)b<<endl;//强转换
system("pause");
}
在例子中我们操纵转换运算符将Test类的对象强转换成了int范例并输出,注意察看转换运算符函数的运行状况,发现并没有产生暂时对象,证明了它与普通函数并不相同,固然它带有return语句.
以上是“C++运算符重载转换运算符[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论