采用指针的 C++ 显式构造函数
C++ explicit constructor that takes a pointer
我最近偶然发现了一个接收单个指针参数的显式构造函数。我想知道在这种情况下是否需要 explicit 关键字?因为没有指针的构造函数,所以不能进行任何隐式转换。
class Foo {
public:
explicit Foo(int* int_ptr);
}
以下代码:
void f(Foo) {}
int main()
{
int* p;
f(p);
}
使用 explicit
编译失败。
没有它也能顺利编译。
我最近偶然发现了一个接收单个指针参数的显式构造函数。我想知道在这种情况下是否需要 explicit 关键字?因为没有指针的构造函数,所以不能进行任何隐式转换。
class Foo {
public:
explicit Foo(int* int_ptr);
}
以下代码:
void f(Foo) {}
int main()
{
int* p;
f(p);
}
使用
explicit
编译失败。没有它也能顺利编译。