21天学通C++——9.6.4使用构造函数进行类型转换

类中存在重载构造函数,即编译器可能默认调用构造函数,进行隐式转换

伪代码:

class MyClass
{
    int age;
public:
    MyClass(int humanAge):age(humanAge){}
};

void DoSomething(MyClass person)
{
    return;
}


int main()
{
    MyClass man(10);
    DoSomething(10);
}

解释:

即在DoSomething中编译器会默认构造一个新的对象,这与初衷违背,进行隐式转换。

改进:

explicit MyClass(int humanAge):age(humanAge){}

你可能感兴趣的:(QT客户端学习路线,c++,开发语言)