首页 > 解决方案 > 数组初始化,初始化器值太多

问题描述

我正在定义一个这样的成员变量:

float m_Colors[4];

在构造函数中,我想像这样初始化它:

m_Color = {0.0f, 0.0f, 0.0f, 1.0f};

即使我在这个特殊场合之前已经这样做了一百万次,我也会收到错误“太多初始化值”。这两行非常简单的代码怎么可能有问题?请启发我。

标签: c++arraysinitialization

解决方案


您不能使用初始化器语法再次重新初始化数组(在class构造时它已经默认初始化)。

您可以在构造时使用使用 actor initializer list来初始化。arrayclass

struct S 
{
    S( ) 
      :  floats_{ 1.0f, 2.2f, 3.3f, 4.4f } 
    {  }

private:
    float floats_[ 4 ];
};

推荐阅读