.net 我有一个错误;h文件中没有默认构造函数,如何设置有效的构造函数
我尝试使用的API中有以下几行代码:.net 我有一个错误;h文件中没有默认构造函数,如何设置有效的构造函数,.net,visual-studio,visual-studio-2015,c++-cli,.net,Visual Studio,Visual Studio 2015,C++ Cli,我尝试使用的API中有以下几行代码: public value struct DeviceInfo { Byte DeviceCompatibility; Size imageSize; static initonly DeviceInfo Empty = { (Size::Empty, 0 ) }; }; 当我编译(构建)这个项目时,我得到了一个错误 System::Drawing::Size没有合适的默认构造函数可用 代码在h文件中;有人能帮我
public value struct DeviceInfo
{
Byte DeviceCompatibility;
Size imageSize;
static initonly DeviceInfo Empty = { (Size::Empty, 0 ) };
};
当我编译(构建)这个项目时,我得到了一个错误
System::Drawing::Size
没有合适的默认构造函数可用
代码在h文件中;有人能帮我做什么吗;我在VS 2015中工作。您可能需要添加更多信息,例如这是什么语言
我猜这是C++ + CLI,你面临的问题可能是一个典型的C++问题,其中“大小”是一个只由简单的“结构大小”引入的类型,没有适当的定义。 如果您引用的标题中没有包含提供“Size”定义的标题,这将是一个错误,该标题看起来像“struct Size{…}”
您可以通过在包含引用的头文件的上方仅包含一行其他头文件来解决此问题。在此C++/CLI值类定义中
public value struct DeviceInfo
{
Byte DeviceCompatibility;
Size imageSize;
static initonly DeviceInfo Empty = { (Size::Empty, 0 ) };
};
存在类型为Size
的数据成员imageSize
。编译器错误消息说这个类没有默认构造函数
您必须在类定义中显式初始化此数据成员,或者编写将初始化此数据成员的类构造函数
根据Size
类描述,它具有以下构造函数
Size(Int32, Int32)
Size(Point)
正如您所见,每个构造函数都需要指定一个或多个参数
我认为您可以使用相同的静态数据成员Size::Empty
来初始化数据成员imageSize
举个例子
Size imageSize = Size::Empty;
我想我们需要更多的信息来帮助你。Yoy可以从添加您正在使用的API开始,也许可以添加您如何调用此代码以及更多上下文“您可能希望添加更多信息,例如它是哪种语言。”?是的,有一个标记c++/cli,但我认为它不在那里。而且我认为我的答案是错误的。弗拉德说得对。