#include<iostream>
#include<string.h>
using namespace std;
class process
{
public:
virtual void print() = 0;
};
class person :public process
{
private:
string name;
string gender;
int age;
person(string n, string g, int a)
{
name = n;
gender = g;
age = a;
}
virtual void print()
{
cout << "姓名:" << name << "性别:" << gender << "年龄:" << age << endl;
}
};
class student :public person
{
public:
int id;
int score1;
int score2;
int score3;
person(int i, int s1, int s2, int s3)
{
id = i;
score1 = s1;
score2 = s2;
score3 = s3;
}
virtual void print()
{
cout << "学号:" << id << "语文成绩:" << score1 << "数学成绩:" << score2 << "英语成绩:" << score3 << endl;
}
};
int main()
{
person p("张三", "男", 20);
student s(19060102, 100, 99, 98);
process* pro1 = new person;
pro1->print();
process* pro2 = new student;
pro2->print();
system("pause");
return 0;
}
```!
有没有大佬看一下这个怎么改
class person(string n = 0,string g = 0,int a = 0) :
构造函数不能写在类定义上
#include<iostream>
#include<string>
using namespace std;
class process
{
public:
virtual void print() = 0;
};
class person: public process
{
private:
string name;
string gender;
int age;
public:
person(string n = "默认名",string g = "男",int a = 0)
{
name = n;
gender = g;
age = a;
}
virtual void print()
{
cout << "姓名:" << name << "性别:" << gender << "年龄:" << age << endl;
}
};
class student :public person
{
private:
int id;
int score1;
int score2;
int score3;
public:
student(int i, int s1, int s2, int s3):person()
{
id = i;
score1 = s1;
score2 = s2;
score3 = s3;
}
virtual void print()
{
cout << "学号:" << id << "语文成绩:" << score1 << "数学成绩:" << score2 << "英语成绩:" << score3 << endl;
}
};
int main()
{
person p("张三", "男", 20);
student s(19060102, 100, 99, 98);
process* pro1 = new person("张四", "男", 21);
pro1->print();
process* pro2 = new student(19060103, 95, 80, 70);
pro2->print();
}
姓名:张四性别:男年龄:21
学号:19060103语文成绩:95数学成绩:80英语成绩:70