1

我有一组 C++/CLI 类,我作为原生 C++ 类的包装器编写。对于 C++/CLI 类:我将构造函数声明放在类声明的私有部分中并且没有实现它们,但是这在我有一个未实现的构造函数的每种情况下都会导致链接器错误。

在 C++/CLI 中删除默认构造函数的适当方法是什么?

4

2 回答 2

4

这适用于本机 C++,因为它使用链接器。如果没有人要求,这对缺少成员实现感到满意。但这在托管代码中不起作用,它不使用链接器。您的类定义被复制到程序集元数据中,并且绑定在运行时动态发生。

这要求所有声明的成员都有一个表示,否则元数据将不完整并且不受支持,因为这会破坏反射。即使是私人会员。没有什么特别难解决的,{}对于私有构造函数来说是一个非常好的实现。

于 2013-04-14T21:49:56.443 回答
0

我将构造函数和析构函数声明放在类声明的私有部分中并且没有实现它们,但是在我有一个未实现的构造函数或析构函数的每种情况下都会导致链接器错误。

仅仅因为您将构造函数设为私有并不意味着您不再需要实现它们。你还在叫它;你必须实施它。

于 2013-04-14T21:23:31.217 回答