您的位置:首页 > 其它

字符串数组的初始化问题(补充解决办法)

2011-09-27 13:02 246 查看
对于字符数组和字符串数组,对数组的整体赋值只能在初始化时进行,整体赋值不能赋值使用,而只能对数组元素一个个的赋值。

即下列:

C: char str[]={"asd"} 正确

char str[];

str="asd";错误

C++(include<string>):

string str[]={"asd","sdf"};正确

string str[];

str[]={"asd","sdf"};错误

不过这是为什么呢?

其实原因参考本博客的另外一篇文章,其实正确的方式都是拷贝运算的范畴,属于浅拷贝;但对于赋值运算的话进支持对象和对象间,即左值和左值间,会出错的。.

如果对象在申明的同时马上进行的初始化操作,则称之为拷贝运算。例如:

class1 A("af");class1 B=A;

此时其实际调用的是B(A)这样的浅拷贝操作。

如果对象在申明之后,在进行的赋值运算,我们称之为赋值运算。例如:

class1 A("af");class1 B;

B=A;

此时实际调用的类的缺省赋值函数B.operator=(A);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐