隐式转换 && explicit 显示初始化
2011-01-15 11:07
239 查看
#include "stdafx.h" #include <iostream> #include <string> using namespace std; class A { public: int iNum; A(){} explicit A( class B& b); // 用exlicit 显示初始化 //A( class B& b); }; class B { public: int iNum; double dNum; B(){} operator A() { A a; a.iNum = this->iNum; cout<<"World !"<<endl; return a; } operator double() { return 1.0; } B& operator = (double const d) { this->dNum = d; return *this; } }; A::A(B& b) { this->iNum = b.iNum; cout<<"Hello "<<endl; } void aa(A asd){} int main() { B b; b.iNum = 100; double d = b; d = b; b = d; //A a( b ); //aa(b); A a = b; cout<<a.iNum<<endl; system("PAUSE"); return 0; }
// 隐式转换1 #include <iostream> #include <string> using namespace std; class B { public: int iNum; }; class A { public: int iNum; A( const B &b ) { iNum = b.iNum; } /*A& operator = ( const B& b) { this->iNum = b.iNum; return *this; }*/ }; int main() { B b; b.iNum = 100; A a(b); cout<<a.iNum; system("PAUSE"); return 0; }
// 隐式转换2 #include <iostream> #include <string> using namespace std; class B { public: int iNum; }; class A { public: int iNum; /*A( const B &b ) { iNum = b.iNum; }*/ A& operator = ( const B& b) { this->iNum = b.iNum; return *this; } }; int main() { B b; b.iNum = 100; A a; a = b; cout<<a.iNum; system("PAUSE"); return 0; }
相关文章推荐
- c++ 隐式转换&&显示转化
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- 菜鸟之隐式转换(implicit)、显示转换(explicit)及转换函数(operator()const)
- operator,implicit(隐式)和explicit (显示)转换
- C# 转换运算符:implicit(隐式),explicit(显示)
- 类型之间进行隐式和显示转换&创建使用枚举&创建使用结构类型&创建使用数组&;如何处理字符串值
- C# 转换运算符:implicit(隐式),explicit(显示)
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- explicit 显示转换 (不允许隐式转换)
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- JavaScript 给变量初始化null ,隐式转换为 'null'
- 显示转换explicit和隐式转换implicit
- InnoDB事务锁之行锁-隐式锁转换显示锁举例理解原理
- C# int类型显示和隐式转换的比较
- 隐式类类型转换以及explicit
- C#隐式转换和显示转换举例--C#基础
- 局部变量与成员变量的同名问题&显示初始化
- explicit:C++规定,当定义了只有一个参数的构造函数时,同时也定义了一种隐式的类型转换
- 隐式意图&显示意图
- C++中的explicit关键字 - 抑制隐式转换(转)