在输入姓名的部分出错了。error C2440: '=' : cannot convert from 'char *' to 'char [10]'

student::student(char*n,doubles1,doubles2,doubles3){if(n)name=newchar[strlen(n)+1];st... student::student(char *n,double s1,double s2,double s3)
{
if(n) name=new char[strlen(n)+1];
strcpy(name,n);
score[0]=s1;
score[1]=s2;
score[2]=s3;
}
#include <iostream.h>
#include <string.h>
class student
{
private:
char name[10];
double score[3];
public:
student(char *n,double s1,double s2,double s3);
double avg();
void printname();
};
student::student(char *n,double s1,double s2,double s3)
{
if(n) name=new char[strlen(n)+1];
strcpy(name,n);
score[0]=s1;
score[1]=s2;
score[2]=s3;
}
double student::avg(){return (score[0]+score[1]+score[2])/3;}
void student::printname(){cout<<name;}
void main()
{
student s1("张三",90.0,78.0,66.0),s2("李四",78.0,88.0,76.0);
cout<<"学生姓名、平均成绩"<<endl;
s1.printname();
cout<<s1.avg()<<endl;
s2.printname();
cout<<s2.avg()<<endl;
}
展开
 我来答
mentats
2011-11-10 · 超过35用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:104万
展开全部
你的name不会是这么定义的吧?
char name[10];
但是你在这个函数里面却把它当指针来用,所以会出现类型转换错误。
直接声明称一个指针就行了
char * name;
The_facE
2011-11-10 · TA获得超过1053个赞
知道小有建树答主
回答量:1087
采纳率:0%
帮助的人:919万
展开全部
name是什么玩意?

你的声明一定是这样写的:
char name[10];
改成
char* name;

猜得对么?
追问
之前不知道怎么了,整个程序打进去,提问不了。所以只能放一小段。
Compiling...
myfile7.cpp
D:\vc++6.0\new12\myfile7.cpp(15) : error C2440: '=' : cannot convert from 'char *' to 'char [10]'
There are no conversions to array types, although there are conversions to references or pointers to arrays
Error executing cl.exe.

myfile7.obj - 1 error(s), 0 warning(s)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式