在构造方法的声明中使用explict关键字,可以禁止“单参构造方法”被用于自动类型转换,如:
- class A {
- public:
- A(int size);
- };
- class B {
- public:
- explict B(int size);
- };
- /* 测试代码 */
- A a(10); // ok,显式转换
- A a1=23; // ok,隐式转换
- a = 23; // 注意!这里会调用A(int)构造方法重新构造对象!!
- B b(10); // ok
- B b1=23; // compile error
- b = 23; // compile error
注:因stl库中使用了 T a = T(); 的语句,所以拷贝构造方法不应该添加explict关键字。
阅读(449) | 评论(0) | 转发(0) |