你好,可不可帮我看一下这道程序,怎么改?说一下理由,谢谢!

#include<iostream>#include<sstream>usingnamespacestd;classStudent{char*name;charthe_c... #include<iostream>
#include<sstream>
using namespace std;
class Student
{
char *name;
char the_class[12];
public:
Student():name(NULL){the_class[0]='\0';}
Student(char *name,char the_class[]);
~Student(){delete []name;}
const char *getName()const {return name;}
const char *getClass()const{return the_class;}
void toUpper(){strdup(name);}
string toString()const;
Student& operator=(const Student &st);

};
Student::Student(char *name,char the_class[])
{
this->name=strdup(name);
strcpy(this->the_class,the_class);

}
string Student::toString()const
{
ostringstream ost;
ost<<"Name:"<<name<<"Class:"<<the_class<<" ";
return ost.str();
}
Student & Student::operator=(const Student &st)
{
if(&st==this) return *this;
if(name!=NULL) delete []name;
name=strdup(st.name);
strcpy(the_class,st.the_class);
return *this;
}
int main()
{
Student a("Jim","071103"),b("Mary","051208");
cout<<"赋值前:"<<endl;
cout<<a.toString()<<b.toString();
a=b;
cout<<"赋值后:"<<endl;
cout<<a.toString()<<b.toString();
a.toUpper();
cout<<"第一个学生的姓名改为大写后:"<<endl;
cout<<a.toString()<<b.toString();
return 0;
}
展开
 我来答
bhtzu
推荐于2016-02-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4263万
展开全部
你要改什么?
程序运行没有编译问题,逻辑问题只有一个大写那里用的函数不对,这里应该用
void toUpper(){strupr(name);}
strupr函数,而不是strdup函数。
另外,这个程序使用了非标准C函数库,只能在VC或其它微软环境下运行。
追问
原来如此,谢谢
来自:求助得到的回答
中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
concurrelgnt
2015-02-15 · 贡献了超过112个回答
知道答主
回答量:112
采纳率:0%
帮助的人:17万
展开全部
140/2=70 70+12=82 70-12=58
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式