void Foo::Bar(Baz& x)
{
z = &x;
}
Foo* foo;
foo -> Bar(nullptr);
我正在尝试仅使用 typedef 创建通用模板 Baz。 由于 z 是私有(private)的并且属于 Foo,因此我无法将 nullptr 分配给 z。
如果可能,我希望最好的方法是在不改变太多实现的情况下将 z 设置为 nullptr——除非这种实现非常糟糕。
我在想也许
(Baz *) 0, or *(void * )0 or the Nullable Class .
最佳答案
如果你确实想保留这个方法:
void Foo::Bar(Baz& x)
{
z = &x;
}
但仍然希望能够将 z
设置为 nullptr
,您可以为 Bar
添加一个重载,它专门接受一个 nullptr
参数:
void Foo::Bar(std::nullptr_t nullp)
{
z = nullp;
}
关于c++ - 如何将 nullptr 作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22321292/