#include
#include
using namespace std;
class Student
{
public:
Student(char *pname,char s,int a);
void set(char *newname,char newsex,int newage);
void display();
int getage();
~Student();
private:
char* name;
char sex;
int age;
};
Student::Student(char *pname=NULL,char s='m',int a=0)
{
name=new char[strlen(pname)+1];
//strcpy(name,pname);
//* name = * pname;
sex=s;
age=a;
}
Student::~Student()
{
delete []name;
}
void Student::set(char *newname,char newsex,int newage)
{
delete []name;
name=new char[strlen(newname)+1];
if(name!=0)
//strcpy(name,newname);
//* name = * newname;
sex=newsex;
age=newage;
}
void Student::display()
{
cout<<"姓名:"<
int Student::getage()
{
return age;
}
void sort( Student s[],int n)
{
Student temp;
for(int i=1;i
for(int j=0;j
if(s[j].getage() {
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
}
void main()
{
Student stu[10];
stu[0].set("zhao",'f',18);
stu[1].set("qian",'f',17);
stu[2].set("sun",'m',20);
stu[3].set("li",'m',19);
stu[4].set("zhou",'f',16);
sort(stu,6);
for(int a=0;a<6;a++)
stu[a].display();
}
我只能改到这一步了,你自己再好好看看Pname的指针吧,就是他的错,但我改不出来了。
改出来了吗?若是改出来了,可以告诉我怎么改的吗?谢谢了。
可能是编译器的问题,关掉重新载入试试。
但源程序中还是有strcpy的警告