c++explicit、register用法
class A{
public:
explicit A(int a)
{
cout<<"成功了!<<endl;
}
~A() { }
};
int main()
{
A a=10;//error
A a(10);//ok
}
也就是说如果加上explicit关键字以后
不可以隐式转换、只可以显式转换
起初如果我们不加上explicit,可以直接=号传值。加上后就不可以。
只可以修饰构造函数。
register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。