如何为 =0 创建 C++ 赋值运算符

Tec*_*eko 2 c++ constructor comparator

在 C++ 中,指针类型 ( void*// ) 可以使用值 0 进行初始化,而无需int*进行char*类型转换,但这不适用于任何其他值。是否可以将相同的行为灌输到已定义的类中?构造函数=0还是==0比较器?为了澄清起见,我尝试添加语法,以便可以将我的 n 维向量类分配给零向量vec<n> dir = 0

编辑:使用 void* 作为构造函数参数的类型实际上确实有效,但这是否是实现此目的的最佳方法?

mol*_*ilo 5

存在从字面量0到 的隐式转换nullptr,并且 的类型nullptrnullptr_t

因此,以下内容按照您想要的方式工作:

// Needed for nullptr_t
#include <cstddef> 

struct A
{
    A(std::nullptr_t) {}
};

int main()
{
    A a = 0;
}
Run Code Online (Sandbox Code Playgroud)

当然,这也意味着这A a = nullptr是有效的,但也许你可以接受这一点......

您可以通过nullptr_t一些现代的constexpr模板恶作剧来完成此任务,而无需间接。