我读到,explicit
为了避免隐式转换,定义单个参数构造函数是一个好习惯。我了解将int值提升为类对象的陷阱。我想知道它是否也适用于接受引用类型的构造函数。在这种情况下,如何引发隐式转换:
class Foo
{
public:
Foo(Bar& bar) { }
};
请问形势的变化,如果构造函数接受指针,是来自转换NULL
和nullptr
可能吗?
class Foo
{
public:
Foo(Bar* bar) { }
};
双方都同意。带有签名的功能
void acceptFoo(const Foo& foo)
Foo
如果在Bar
那儿传递,将使编译器创建一个。
与0
和相同nullptr
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句