C++静态成员二维数组的初始化问题
c.h:classc{public:staticchararr[255][16];}charc::arr[255][16]={0};这样初始化二维数组报错。c.h:cla...
c.h:
class c
{
public:
static char arr[255][16];
}
char c::arr[255][16]={0};
这样初始化二维数组报错。
c.h:
class c
{
public:
static char arr[255][16];
}
c.cpp
char c::arr[255][16]={0};
这样不报错。为什么?请高手解答。
初始化放在.h中报错,放在cpp文件中不报错,这是为什么 展开
class c
{
public:
static char arr[255][16];
}
char c::arr[255][16]={0};
这样初始化二维数组报错。
c.h:
class c
{
public:
static char arr[255][16];
}
c.cpp
char c::arr[255][16]={0};
这样不报错。为什么?请高手解答。
初始化放在.h中报错,放在cpp文件中不报错,这是为什么 展开
展开全部
你这是啥?
class c
{
public:
static char arr[255][16];
};//你这里少个分号
char c::arr[255][16]={0};这样没有问题啊
静态数据成员实际上是类域中的全局变量。而全局变量的定义不应该在头文件中,所以,静态数据成员的定义(初始化)不应该被放在头文件中。
class c
{
public:
static char arr[255][16];
};//你这里少个分号
char c::arr[255][16]={0};这样没有问题啊
静态数据成员实际上是类域中的全局变量。而全局变量的定义不应该在头文件中,所以,静态数据成员的定义(初始化)不应该被放在头文件中。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
别这么初始化,一般是用 memset(arr,0,sizeof(arr)); 初始化数组的。
你的提问应该改成:char c::arr[255][16] = {{0}}; 你试一下吧。
你的提问应该改成:char c::arr[255][16] = {{0}}; 你试一下吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询