
C++ 无法指定数组的显式初始值设定项
代码是这样的:classA{public:A():x({0}){}private:charx[10];};报错:无法指定数组的显式初始值设定项请问这是什么情况……...
代码是这样的:
class A
{
public:
A() :x({ 0 }){}
private:
char x[10];
};
报错:无法指定数组的显式初始值设定项 请问这是什么情况…… 展开
class A
{
public:
A() :x({ 0 }){}
private:
char x[10];
};
报错:无法指定数组的显式初始值设定项 请问这是什么情况…… 展开
展开全部
x({0})不能这样初始化x数组
更多追问追答
追问
请问那要怎么初始化呢?我试过里面一个个全部填0也不行啊
追答
嗯,不行,因为不论花括号还是""字符串常量的初始化方式,都只能在声明数组时进行
例如 char a[] = "abc"; 或者 char c[10] = {0}
若是已经声明char a[10],则a = "abc"就不对了。
上面这种初始化,同时完成了内存空间的分配和内容的初始化。
而你这个初始和列表的语法,显然是要完成内容的初始化,这类似于拷贝构造函数,数组没有这个性质。
要完成x的初始化,用strcpy或者循环赋值吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询