C++ 语言可以定义如何将其他类型的对象隐式转换为我们的类类型, 或将我们的类类型的对象隐式转换为其他类型。
下面为类类型的隐式转换的示例代码:
- #include <iostream>
- using namespace std;
- class A
- {
- public:
- A(int temp) //普通构造函数
- {
- a = temp;
- cout << "普通构造函数: a= " << a << endl;
- }
- A(const A &temp) //拷贝构造函数
- {
- a = temp.a;
- cout << "拷贝构造函数: a = " << a << endl;
- }
- private:
- int a;
- };
- int main()
- {
- cout << "显示调用:" << endl;
- A a(250); //显式调用调用普通构造函数,ok
- A b(a); //显式调用调用拷贝构造函数,ok
- cout << "\n隐式转换:" << endl;
- A c=222; //隐式转换成调用普通构造函数,ok
- A d=c; //隐式转换成调用拷贝构造函数,ok
- return 0;
- }
编译运行结果如下: