Если класс определен так:
const int ROWS = 4;
const int COLS = 4;
class Matrix2d
{
public:
char keys [ROWS][COLS];
private:
};
, что означает keys - это атрибуты экземпляра Matrix2d , но форма
char Matrix2d::keys [ROWS][COLS] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
определяет и инициализирует атрибут класса Matrix2d , это несовместимо
Если вам нужен атрибут класса («статический»), выполните
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'}
};
Если вы хотите, чтобы атрибут экземпляров имел это значение по умолчанию, выполните
class Matrix2d
{
public:
char keys [ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
};
В обоих случаях я призываю вас изменить видимость