c++ - 如何将 nullptr 作为参数传递?

标签 c++ nullptr

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/

相关文章:

c++ - 将 `nullptr` 分配给 `bool` 类型。哪个编译器是正确的?

c++ - nullptr_t 是默认的可构造类型吗?

c++ - std::rethrow_exception(nullptr) 未定义行为或 bad_exception?

c++ - 为什么不对C样式字符串进行空指针检查?

c++ - 如何声明 vector::size_type 的 vector ?

C++11 快速 constexpr 整数幂

c++ - 为什么在此代码中忽略了析构函数?

c++ - 空对象模式和函数

c++ - 使用 OpenCV 帧创建 RTP/RTSP 或 HTTP 流

c++ - "Backporting"nullptr 到 C++-pre-C++0x 程序