C++中的explicit constructor
时间:2010-11-09 来源:edwardlost
1 #include <iostream>
2 using std::cout;
3 using std::endl;
4 class complexNumbers {
5 double real, img;
6 public:
7 complexNumbers() : real(0), img(0) { }
8 complexNumbers(const complexNumbers& c) { real = c.real; img = c.img; }
9 explicit complexNumbers( double r, double i = 0.0) { real = r; img = i; }
10 friend void display(complexNumbers cx);
11 };
12 void display(complexNumbers cx){
13 cout<<"Real Part: "<<cx.real<<" Imag Part: "<<cx.img<<endl;
14 }
15 int main() {
16 complexNumbers one(1);
17 display(one);
18 complexNumbers two = 2; //错误!必须显示地进行类型转换
19 display(200); //error: conversion from ‘int’ to non-scalar type ‘complexNumbers’ requested
20 return 0;
21 }
原文地址:Explicit Constructor in C++
相关阅读 更多 +