如果定义一个构造函数,这个构造函数能把另一类型对象或引用作为它的单个
参数,那么这个构造函数允许编译器执行自动类型转换
//: C12:AutomaticTypeConversion.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Type conversion constructor
class One {
public:
One() {}
};
class Two {
public:
Two(const One&) {}
};
void f(Two) {}
int main() {
One one;
f(one); // Wants a Two, has a One
} ///:~
当编译器看到f以类One为对象为参数调用时,编译器检查f()的声明并注意到
它需要一个类Two的对象作为参数
自动类型转换避免定义两个f()重载版本的麻烦