面向对象程序设计(三):C++模板operator Type类型转换
2024-10-21 09:26:25
学习算法的时候遇到了一个不认识的写法,去网上查了查,看到有一篇写的挺好的,转载过来了
C++隐式类型转换运算符operator type()用法详解
对象向基本数据类型转换:
点击查看代码
#include<iostream>
#include<string>
using namespace std;
class D{
public:
D(double d):d_(d) {}
operator int() const{
std::cout<<"(int)d called!"<<std::endl;
return static_cast<int>(d_);
}
private:
double d_;
};
int add(int a,int b){
return a+b;
}
int main(){
D d1=1.1;
D d2=2.2;
std::cout<<add(d1,d2)<<std::endl;
system("pause");
return 0;
}
对象向不同类的对象的转换:
点击查看代码
#include<iostream>
class X;
class A
{
public:
A(int num=0):dat(num) {}
A(const X& rhs):dat(rhs) {}
operator int() {return dat;}
private:
int dat;
};
class X
{
public:
X(int num=0):dat(num) {}
operator int() {return dat;}
operator A(){
A temp=dat;
return temp;
}
private:
int dat;
};
int main()
{
X stuff=37;
A more=0;
int hold;
hold=stuff;
std::cout<<hold<<std::endl;
more=stuff;
std::cout<<more<<std::endl;
return 0;
}
最新文章
- 分分钟教你从根本上认识Struts2框架
- 黄聪:GeckoFX如何引用jquery文件并执行自定义JS
- linq lamda
- [Js/Jquery]jquery插件开发
- 【AngularJS】—— 4 表达式
- iOS开发~CocoaPods使用详细说明【转】
- 在网页中在线浏览ppt文档
- springmvc 传递和接收数组参数
- Google出品的自动Web安全扫描程序 Skipfish 下载及安装使用方法
- PHP 常识
- INS-20802
- pip升级后出现cannot import name &#39;main&#39;
- [Android Studio] Using Java to call OpenCV
- P3810 【模板】三维偏序(陌上花开)
- js操作cookie(转载:经测试可用)
- python中的模块及路径
- python爬虫实战(八)--------知乎
- 【转】伪O2O已死?2016年实体零售将迎来真正的O2O
- php -- 用文本来存储内容,file_put_contents,serialize,unserialize
- Spring提前加载与懒加载