定义一个学术类,其中有3个数据成员有学号 、姓名、年龄以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出, 要求:1)使用成员函数实现对输出的输入、输出 2)使用构造函数和析构函数实现对数据的输入 、输出,
时间: 2024-11-23 10:49:54 浏览: 34
在C++中,我们可以定义一个名为Student
的类来表示学术类,包含学号、姓名和年龄三个私有数据成员。同时,我们会定义构造函数、析构函数、赋值运算符和输出流操作符来进行数据的初始化、销毁和展示。
#include <iostream>
#include <string>
class Student {
private:
int studentId;
std::string name;
int age;
public:
// 构造函数
Student(int id, const std::string& name, int age)
: studentId(id), name(name), age(age) {}
// 析构函数 (默认的,不做特殊处理)
~Student() {}
// 赋值运算符
Student& operator=(const Student& other) {
if (this != &other) {
studentId = other.studentId;
name = other.name;
age = other.age;
}
return *this;
}
// 输入函数
void inputData() {
std::cout << "请输入学生的学号、姓名和年龄:\n";
std::cin >> studentId >> name >> age;
}
// 输出函数
friend std::ostream& operator<<(std::ostream& os, const Student& student) {
os << "学号:" << student.studentId << ", 姓名:" << student.name << ", 年龄:" << student.age;
return os;
}
};
int main() {
Student student1;
student1.inputData(); // 使用成员函数获取用户输入
// 输出学生信息
std::cout << "学生信息:" << student1 << std::endl;
Student student2(1001, "张三", 20); // 直接使用构造函数赋值
student2 = student1; // 使用赋值运算符复制数据
std::cout << "复制后的学生信息:" << student2 << std::endl;
return 0;
}
在这个例子中,我们定义了一个Student
类,包含了构造函数、析构函数、赋值运算符和输出流操作符。在main
函数中,我们首先创建了一个Student
实例,然后通过inputData
成员函数从用户那里获取数据,接着直接使用构造函数赋值和通过赋值运算符进行数据复制,并展示了如何使用operator<<
输出学生信息。