C++ 无法指定数组的显式初始值设定项

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式