参数化和转换构造函数

时间:2010-06-05 10:22:09

标签: c++

参数化构造函数和转换构造函数之间是否存在任何差异。如果是这样的话是什么?

1 个答案:

答案 0 :(得分:5)

参数化构造函数(推测)是任何带有一个或多个参数的构造函数。转换构造函数是一个构造函数,可以使用单个参数调用,并且未声明为显式。

struct A {
    A();     // not parameterised or conversion
    A( int x, int y  ); // paramterised, not conversion
    A( int x );      // conversion
    explicit A( float z );    // not conversion;
};

编译器可以使用转换构造函数。给出:

void f( A a ) {
}

编译器可以将此函数称为:

f( 42 );

使用转换构造函数将42转换为A类型的对象。