错误:函数不是“类”的静态数据成员-C ++

时间:2019-03-24 15:23:13

标签: c++ class arduino

非常抱歉,如果已经在某个地方回答了该问题,但是经过数小时的搜索,我找不到或了解任何内容。

对于OOP来说,这是一个很新的知识,我正在尝试通过创建一个预定义2维字符矩阵的类来与自己一起学习。我不断收到以下错误:

错误:“ char Matrix2d :: keyss [4] [4]”不是“类Matrix2d”的静态数据成员char Matrix2d :: keyss [ROWS] [COLS] =

我的标题如下:

const int ROWS = 4;
const int COLS = 4;

class Matrix2d
{
  public:

   char keys [ROWS][COLS];

  private:

};

我的.cpp是这样的:

char Matrix2d::keys [ROWS][COLS] =

{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};

这是使用arduino键盘运行的简单代码。

提前感谢您的帮助,希望这是我第一次在此处发布信息,因此我提供了足够的信息。

1 个答案:

答案 0 :(得分:1)

如果该类是这样定义的:

const kruptein = require('kruptein');

const options = {
  secret: 'squirrel'
}

let ciphertext = JSON.stringify(kruptein.set('security sentence'));
// {"hmac":"Ó\u0002VBº7üG\t|\u0000ï4¯R¶\u0013g¾S\\¨®£øQö","ct":"5é >Å©\tPÈ¿R\tÒëß+ÂwßDâ¡\u000e\u0012Ã\fzö]5ç","at":{"type":"Buffer","data":[34,212,193,69,138,251,146,127,218,20,195,124,105,249,164,255]},"aad":"mKr:æY Ï¢oþ¼Yþ×Kù:5\u0005êeó\u0003!ÀÁk\"\u001d","iv":{"type":"Buffer","data":[80,14,4,251,14,240,168,121,208,220,165,150]}}

console.log(kruptein.get(ciphertext));
// security sentence

表示 keys Matrix2d 实例的属性,但是格式

const int ROWS = 4;
const int COLS = 4;

class Matrix2d
{
  public:

   char keys [ROWS][COLS];

  private:

};

定义并初始化 Matrix2d 类的属性,这是不兼容的


如果要使用类的属性(“静态”类)

char Matrix2d::keys [ROWS][COLS] =

{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};

如果您想要具有该默认值的实例的属性,请执行

const int ROWS = 4;
const int COLS = 4;

class Matrix2d
{
  public:
     static char keys [ROWS][COLS];    
};

char Matrix2d::keys [ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

在两种情况下,我都建议您更改可见度