字符串变量为什么不能赋值字符数组??

例如:#include<string>#include<iostream>usingnamespacestd;classStudent//声明Student类{publi... 例如:
#include<string>
#include<iostream>
using namespace std;
class Student //声明Student类
{public :
Student(int n,string nam,char s ) //定义构造函数
{num=n;
name=nam;//字符串变量赋值字符数组
sex=s;
cout<<″Constructor called.″<<endl; //输出有关信息
}
void display( ) //定义成员函数
{
cout<<″num: ″<<num<<endl;
cout<<″name: ″<<name<<endl;
cout<<″sex: ″<<sex<<endl<<endl;
}
private :
int num;
char name[10];//此处按字符数组定义
char sex;
};
int main( )
{Student stud1(10010,″Wang_li″,′f′); //建立对象stud1
stud1.display( ); //输出学生1的数据
return 0;
}

这样编译时会提示错误!若把char name[10],改为string name;编译正常!
展开
 我来答
冷明珠05v
2012-06-13 · TA获得超过1502个赞
知道小有建树答主
回答量:389
采纳率:100%
帮助的人:545万
展开全部
你使用 char name[10];出现编译错误是因为在类的构造函数中,你使用了name=nam;//字符串变量赋值字符数组,字符串数组是不支持等号进行赋值的,你可以改成使用strcpy赋值。
而string 类是进行过封装的,是支持等号复赋值的,所以不会报错。
匿名用户
2012-06-13
展开全部
两个是不同类型的呀 string是个类
所以你只能用strcpy(name, nam.c_str());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wpz_r001
2012-06-13
知道答主
回答量:41
采纳率:0%
帮助的人:11.6万
展开全部
两个是不同类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式