我有一个错误; h文件中没有默认构造函数,如何设置有效的构造函数

时间:2016-11-17 08:38:27

标签: .net visual-studio visual-studio-2015 c++-cli

我正在尝试使用的API中包含以下几行:

System::Drawing::Size

当我编译(构建)项目时,我收到错误

var url ='http://www.example.com/45/10/2016' var parts = url.split('/') // change segments parts[4] = '12'; parts[5] = '2017'; var new_url = parts.join('/') 没有合适的默认构造函数

代码在h文件中;有人可以帮我做我应该做的事;我在VS 2015工作。

2 个答案:

答案 0 :(得分:0)

您可能希望添加更多信息,例如语言。

我想这是c ++ / cli,你遇到的问题可能是一个典型的c ++问题,其中“Size”只是一个简单的“struct Size”引入的类型。没有正确的定义。

在您引用的标题中出现错误,未能包含提供“Size”定义的标题,该标题看起来像“struct Size {...}”

您可以通过将其他头文件包含在包含引用头文件之上一行的位置来解决问题。

答案 1 :(得分:0)

在此C ++ / CLI值类定义

public value struct DeviceInfo
{
    Byte    DeviceCompatibility;
    Size    imageSize;

    static initonly DeviceInfo Empty = { (Size::Empty, 0 ) };
};

imageSize类型的数据成员Size。并且编译器错误消息表明此类没有默认构造函数。

您必须在类定义中显式初始化此数据成员,或者编写将初始化此数据成员的类构造函数。

根据Size类描述,它具有以下构造函数

Size(Int32, Int32)
Size(Point)

正如您所看到的,每个构造函数都需要指定一个或多个参数。

我认为您可以使用相同的静态数据成员Size::Empty来初始化数据成员imageSize

试试例子

    Size    imageSize = Size::Empty;