我有一组C ++ / CLI类,我已经编写为本机C ++类的包装器。对于C ++ / CLI类:我将构造函数声明放在类声明的私有部分中并且没有实现它们,但是在我有一个未实现的构造函数的每种情况下都会导致链接器错误。
在C ++ / CLI中删除默认构造函数的适当方法是什么?
答案 0 :(得分:4)
这适用于本机C ++,因为它使用链接器。如果没有人要求,会对缺少的成员实施感到满意。但是这在托管代码中不起作用,它不使用链接器。您的类定义将复制到程序集元数据中,并且绑定会在运行时动态发生。
这要求所有声明的成员都有一个表示,否则元数据将不完整,并且不支持,因为这会破坏反射。即使是私人会员。没有什么特别难以解决的,{}
对于私有构造函数来说是一个非常好的实现。
答案 1 :(得分:0)
我将构造函数和析构函数声明放在类声明的私有部分中并且没有实现它们,但是在我有未实现的构造函数或析构函数的每种情况下都会导致链接器错误。 / p>
仅仅因为你将构造函数设为私有并不意味着你不再需要实现它们。你还在叫它;你必须实现它。