学习算法的时候遇到了一个不认识的写法,去网上查了查,看到有一篇写的挺好的,转载过来了

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;
}

最新文章

  1. 分分钟教你从根本上认识Struts2框架
  2. 黄聪:GeckoFX如何引用jquery文件并执行自定义JS
  3. linq lamda
  4. [Js/Jquery]jquery插件开发
  5. 【AngularJS】—— 4 表达式
  6. iOS开发~CocoaPods使用详细说明【转】
  7. 在网页中在线浏览ppt文档
  8. springmvc 传递和接收数组参数
  9. Google出品的自动Web安全扫描程序 Skipfish 下载及安装使用方法
  10. PHP 常识
  11. INS-20802
  12. pip升级后出现cannot import name &#39;main&#39;
  13. [Android Studio] Using Java to call OpenCV
  14. P3810 【模板】三维偏序(陌上花开)
  15. js操作cookie(转载:经测试可用)
  16. python中的模块及路径
  17. python爬虫实战(八)--------知乎
  18. 【转】伪O2O已死?2016年实体零售将迎来真正的O2O
  19. php -- 用文本来存储内容,file_put_contents,serialize,unserialize
  20. Spring提前加载与懒加载

热门文章

  1. java学习之Cookie与Session
  2. 微信小程序的学习(二)
  3. Nginx如何配置隐藏index.php文件
  4. 【Spring系列】- Bean生命周期底层原理
  5. 【DL论文精读笔记】ResNet
  6. C# Math 中的常用的数学运算
  7. 【实时数仓】Day02-DWD、DIM层数据准备:各层职能、行为日志DWD层、业务日志DWD层及分流(Phoenix和HBASE)
  8. 使用pycharm or vscode来编写python代码?
  9. 当 xxl-job 遇上 docker → 它晕了,但我不能乱!
  10. git相关问题解析,你想要的都有&#128293;