c++中类型的隐式转换。

在满足下条件时,编译器才会使用隐式转换:

1,存在匹配的构造函数。

如:class A {

public:

A(B);


};

//

A  a=B;


2,存在声明的转换操作符:

class B {

public:


operator A() const;

};

//

A  a=B;

备注:隐式转换有时可能造成二义性。为了阻止编译器使用隐式转换,可以将构造函数用explicit修饰。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章