将一个多维数组初始化为一个类 c++中的成员

我有一个类,比方说,我想在构造函数中初始化Children参数:

class Foo
{
    public:

         unsigned int Index;
         float Size;
         Foo(const unsigned int index);
         ~Foo();

    private:
         int Children[2][2];

};

我想在构造函数中初始化Children参数。

Foo::Foo(const unsigned int index) : Index(index)
{
    this->Size = 0.5 / index;
    this->Children = {};

    if (index < MAX_DIVS) {
        for (int _x = 0; _x < 2; _x++) {
            for (int _y = 0; _y < 2; _y++) {
                this->Children[_x][_y] = 0;
        }

    }

}

我可以把初始值赋给 Sizethis->Size= 0.5/Index但我无法初始化Children;Visual Studio在以下情况下给了我一个错误信息 this->Children = {} 说:”表达式必须有一个可修改的值”。”表达式必须有一个可修改的l值”。为什么会这样呢?

解决方案:

正如@L.F.和@UnholySheep所指出的那样,为了给类中的 Children 变量,它应该被添加到成员初始化器列表中,像这样。

Foo::Foo(const unsigned int index) : Index(index), Children(), Size(0.5/index) {}

这将会把Children变量初始化为一个全0的数组,然后可以在构造函数中进一步修改。

给TA打赏
共{{data.count}}人
人已打赏
解决方案

如何检查C#中返回的方法是否为整数?

2022-4-22 9:00:12

解决方案

如何 "按顺序 "查询多个SQL

2022-4-22 9:00:14

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索