Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 数组和变量没有预定义的内容_C++_Arrays_Arduino_Avr_Stdint - Fatal编程技术网

C++ 数组和变量没有预定义的内容

C++ 数组和变量没有预定义的内容,c++,arrays,arduino,avr,stdint,C++,Arrays,Arduino,Avr,Stdint,我为我的LED立方体制作了一个Animation.cpp,每个帧和每层包含一个uint16_t的二维数组。我在.cpp中初始化数组,并且还有一个包含帧数的变量。但是当它运行时,数组似乎只有随机数据(来自ram),int w/帧数量为0 链接到cpp: 链接到标题: 我基本上是CPP/GCC的初学者,那么,我做错了什么呢?在您的类中对帧的定义与您在CPP中定义的帧的定义不同。 尝试在动画类构造函数中初始化帧。在C++11中,可以直接执行以下操作: class Animation { publi

我为我的LED立方体制作了一个Animation.cpp,每个帧和每层包含一个uint16_t的二维数组。我在.cpp中初始化数组,并且还有一个包含帧数的变量。但是当它运行时,数组似乎只有随机数据(来自ram),int w/帧数量为0

链接到cpp:

链接到标题:


我基本上是CPP/GCC的初学者,那么,我做错了什么呢?

在您的类中对
帧的定义与您在CPP中定义的
帧的定义不同。

尝试在
动画
类构造函数中初始化帧。

在C++11中,可以直接执行以下操作:

class Animation
{
public:
    std::uint16_t frames[8][4] = {
        {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
        {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
        {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
        {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
        {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
        {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
        {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF},
        {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF}
    };
    std::uint8_t currentFrame = 0;
};
在C++03中,必须使用构造函数:

class Animation
{
public:
    Animation() : currentFrame(0)
    {
        for (int i = 0; i != 8; ++i) {
            for (int j = 0; j != 4; ++j) {
                frames[i][j] = 0xFFFF;
            }
        }
    }

    uint16_t frames[8][4];
    uint8_t currentFrame;
};

您的成员和全局变量是不相关的(它们只是共享相同的名称)。如何使它们相互关联?添加public作为前缀?如果我使用public:在cpp中,它总是说“在‘public’之前预期的非限定id”。在较低版本中有没有办法做到这一点?