用c++定义学生中小学生,中学生,大学生三个
时间: 2024-04-17 10:29:21 浏览: 9
以下是使用C++定义学生类别的示例代码:
```cpp
#include <iostream>
#include <string>
// 基类:学生
class Student {
protected:
std::string name;
int age;
public:
Student(std::string name, int age) : name(name), age(age) {}
virtual void display() {
std::cout << "Name: " << name << std::endl;
std::cout << "Age: " << age << std::endl;
}
};
// 小学生类
class ElementaryStudent : public Student {
private:
int grade;
public:
ElementaryStudent(std::string name, int age, int grade) : Student(name, age), grade(grade) {}
void display() override {
std::cout << "Elementary Student" << std::endl;
Student::display();
std::cout << "Grade: " << grade << std::endl;
}
};
// 中学生类
class MiddleSchoolStudent : public Student {
private:
int grade;
public:
MiddleSchoolStudent(std::string name, int age, int grade) : Student(name, age), grade(grade) {}
void display() override {
std::cout << "Middle School Student" << std::endl;
Student::display();
std::cout << "Grade: " << grade << std::endl;
}
};
// 大学生类
class CollegeStudent : public Student {
private:
std::string major;
public:
CollegeStudent(std::string name, int age, std::string major) : Student(name, age), major(major) {}
void display() override {
std::cout << "College Student" << std::endl;
Student::display();
std::cout << "Major: " << major << std::endl;
}
};
int main() {
Student* student1 = new ElementaryStudent("John", 8, 3);
student1->display();
std::cout << std::endl;
Student* student2 = new MiddleSchoolStudent("Alice", 14, 9);
student2->display();
std::cout << std::endl;
Student* student3 = new CollegeStudent("Bob", 20, "Computer Science");
student3->display();
delete student1;
delete student2;
delete student3;
return 0;
}
```
这段代码定义了一个基类`Student`,以及三个派生类`ElementaryStudent`(小学生)、`MiddleSchoolStudent`(中学生)和`CollegeStudent`(大学生)。每个类都有自己的特定属性和方法,并且它们都重写了基类的`display()`方法以显示相应的信息。在主函数中,创建了几个不同类型的学生对象,并调用它们的`display()`方法以展示各自的信息。最后,记得释放动态分配的内存。