请问各路高手,这个C++程序错在哪里,怎么改.本人是初学者,还没入门

来源:百度知道 编辑:UC知道 时间:2024/09/22 02:09:10
//example2.cpp
#include<iostream.h>
#include<string.h>
class person
{
public:
person(const char* pnum,char* pname);
char* getnum()
{
return(num);
}
char* getname()
{
return(name);
}
void display();
private:
char num[20];
char name[11];
}
person::person(const char* pnum,char* pname)
{
strcpy(num,pnum);
strcpy(name,pname);
}
void person::display()
{
cout<<" num:"<<num<<'\t';
cout<<" name:"<<name<<endl;
}
class student:public person
{
public:
student(char* ppnum,char* ppname,char* pclasss,float pscore):
person(ppnum,ppname)
{
strcpy(classs,pclasss);
score=pscore;
}
char* getclass()
{
return(classs);
}
float getscore()
{
r

错误:
1.指针成员变量没有申请空间就用strcpy,造成内存访问错误,已经改为字符数组。
2.person 类结束没有;号。
3.display函数定义和声明不同,写错了个字母。

建议:像这类错误要充分使用断点,单步调试。

#include<iostream.h>
#include<string.h>
class person
{
public:
person(const char* pnum,char* pname);
char* getnum()
{
return(num);
}
char* getname()
{
return(name);
}
void display();
private:
char num[20];
char name[11];
};
person::person(const char* pnum,char* pname)
{
strcpy(num,pnum);
strcpy(name,pname);
}
void person::display()
{
cout<<" num:"<<num<<'\t';
cout<<" name:"<<name<<endl;
}
class student:public person
{
public:
student(char* ppnum,char* ppname,char* pclasss,float pscore):
person(ppnum,ppname)
{
strcpy(classs,pclasss);
score=pscore;