您的位置:首页 > 编程语言 > C语言/C++

c++学习2--explicit用法

2015-04-08 22:56 64 查看
1.只能修饰类的内部构造函数

class A

{

public:

explicit A(int i)m(i){};//正确

private:

int m ;

};

explicit A::A(int i)//错误

{

m = i ;

}

void fun(A temp)

{

}

2.阻止隐式转换

原因:在C++中某个类的构造函数只有一个参数,假设类型为A,那么可以进行A到该类的对象的隐式转换,比如下面的类A的构造函数只有一个参数,类型为int,那么就可以直接将一个int转换为A类的对象

如果不用该修饰符

A temp=10;//正确

fun(10)

否则只能显示调用一个形参的构造函数

A temp(10);

fun(temp);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: