C++ 如何在类外初始化数组并为第一个元素设置值?
用于Arduino。问题是:Player::coords[0]={0,0} 标题文件:C++ 如何在类外初始化数组并为第一个元素设置值?,c++,arrays,class,static,initialization,C++,Arrays,Class,Static,Initialization,用于Arduino。问题是:Player::coords[0]={0,0} 标题文件: \ifndef游戏 #定义游戏 #包括 职业选手{ 公众: int getScore(); 静态整数坐标[3250][2]; 坐标:x,y 私人: 静态积分; }; #恩迪夫 Cpp文件: #包括“game.h” int Player::score=1; int Player::getScore(){ 返回此->分数; } int Player::coords[3250][2]; Player::coord
\ifndef游戏
#定义游戏
#包括
职业选手{
公众:
int getScore();
静态整数坐标[3250][2];
坐标:x,y
私人:
静态积分;
};
#恩迪夫
Cpp文件:
#包括“game.h”
int Player::score=1;
int Player::getScore(){
返回此->分数;
}
int Player::coords[3250][2];
Player::coords[0]={0,0};
编译器写道:“类播放器”中的“coords”不命名类型您不能在命名空间范围内这样做
int Player::coords[3250][2];
Player::coords[0] = {0, 0};
事实上,这些陈述与这一陈述是等价的
int Player::coords[3250][2] = { { 0, 0 } };
或
甚至只是
int Player::coords[3250][2];
因为数组具有静态存储持续时间,并且编译器初始化为零。在命名空间范围内,您不能这样做
int Player::coords[3250][2];
Player::coords[0] = {0, 0};
事实上,这些陈述与这一陈述是等价的
int Player::coords[3250][2] = { { 0, 0 } };
或
甚至只是
int Player::coords[3250][2];
因为数组具有静态存储持续时间,编译器初始化为零。您不能在函数之外分配变量。您不能在函数之外分配变量。