您的位置:首页 > 其它

explicit 禁止隐式转换

2010-09-08 16:26 190 查看
explicit 关键字只能用于类内部的构造函数声明上。

在构造函数的实现中不需要再声明explicit

如下例:

#include <iostream>
using namespace std;
class A
{
public:
int age;
explicit A( int a)
{
age = a;
cout<<age<<endl;
}
};
int main()
{
//A a = 19;
A a(19);
return 0;
}


上例中的 "A a = 19;" 如果构造函数A(int a)前没有声明称explicit的话 这个将进行隐式转化,用赋值操作符是合法的

所以 如果使用A a = 19; 则编译不会通过, 因为前面声明了explicit 必须显示的进行赋值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: