首页 > 解决方案 > 如何在 C++ 中使用构造函数初始化结构列表

问题描述

我有一个带有构造函数的结构喜欢:

struct Rectangle
{
    int width;
    int height;

    Rectangle(int _width, int _height)
    {
        width = _width;
        height = _height;
    }
}

我创建了一个可以的矩形:Rectangle rect = Rectangle(4, 8);

但是如何使用构造函数创建一个 Rectangle 结构列表:Rectangle rects[10];

这是一个错误:类“矩形”不存在默认构造函数。

如果我在 struct 中定义构造函数,是否不允许创建列表?

我该如何解决?

谢谢!

标签: c++liststructconstructor

解决方案


“无默认构造函数”意味着没有不带参数的构造函数。你有一个需要 2。编译器不能只是组成值,它需要确切地知道要提供什么值。

您可以通过调整签名以包含默认值轻松地将其设为默认构造函数:

Rectangle(int _width = 0, int _height = 0)

现在它可以作为默认值使用。


推荐阅读