今天看《Effective C++》,发现了一个一直不懂的技巧,就是定义一个类在进行类型转换后的结果,例如我有一个这样的类:
class Sum2Int {
int a,b;
public:
explicit sum2Int(int aa, int bb) : a(aa), b(bb) {}
};
class Sum2Int {
int a,b;
public:
explicit Sum2Int(int aa, int bb) : a(aa), b(bb) {}
int get() {
return a+b;
}
};
#include<iostream>
using namespace std;
class Sum2Int {
int a,b;
public:
explicit Sum2Int(int aa, int bb) : a(aa), b(bb) {}
operator int() const {
return a+b;
}
operator double() const {
return 1.0*a + 1.0*b;
}
int get() {
return a+b;
}
};
void prt(int k)
{
cout<<k<<endl;
}
void prt2(double k)
{
cout<<k<<endl;
}
int main()
{
int a,b;
while(true)
{
cin>>a>>b;
prt(Sum2Int(a,b));
prt2(Sum2Int(a,b));
cout<<Sum2Int(a,b).get()<<endl;
}
}
这个方法来自《Effective C++》的条款15。这本书相当不错,尤其是一些程序设计的思想,会有让人“啊哦!”的感觉
如果文中哪里有问题,还请指出~!
******<转载说明>******
更多内容参见:
******</转载说明>******
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务