如果构造函数没有参数,那么有必要加explicit 吗
时间: 2024-03-20 07:38:35 浏览: 168
认识 C++ 中的explicit 关键字
如果构造函数没有参数,则没有必要加 `explicit` 关键字,因为无参构造函数不会进行任何参数的类型转换,也不会发生重载冲突的问题。
`explicit` 关键字主要用于修饰有参数的构造函数,避免发生隐式转换,导致代码可读性下降和潜在的安全问题。如果一个类只有无参构造函数,那么无论是否加上 `explicit` 关键字,对类的调用方式都没有影响。例如:
```c++
class A {
public:
A() { ... }
void func() { ... }
};
int main() {
A a; // 无参构造函数,不需要加 explicit
a.func();
return 0;
}
```
阅读全文