12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #include <iostream>
- using namespace std;
- class Student {
- private:
- string name; // 学生姓名
- int id; // 学生学号
- static int count; // 班级人数
- const int classID; // 班级号 (常数据成员)
- static int idCounter; // 静态数据成员,记录当前学生学号
- public:
- // 构造函数
- Student(string name) : name(name), id(++idCounter), classID(1001) {
- ++count;
- }
- // 公有成员函数,输出学生信息
- void Print() const {
- std::cout << "名字:" << name << std::endl;
- std::cout << "学号:" << id << std::endl;
- std::cout << "班级:" << classID << std::endl;
- std::cout << "班级人数:" << count << std::endl;
- }
- // 友元函数声明
- friend void Output(Student s);
- };
- // 静态数据成员的定义和初始化
- int Student::count = 45;
- int Student::idCounter = 0;
- // 友元函数实现,输出学生信息
- void Output(Student s) {
- std::cout << "名字:" << s.name << std::endl;
- std::cout << "学号:" << s.id << std::endl;
- std::cout << "班级:" << s.classID << std::endl;
- std::cout << "班级人数:" << Student::count << std::endl;
- }
- int main() {
- string name1,name2;
- cin >> name1 >> name2;
- Student a(name1);
- Student b(name2);
- // a.Print();
- // std::cout << std::endl;
- // b.Print();
- // std::cout << std::endl;
- Output(a);
- std::cout << std::endl;
- Output(b);
- return 0;
- }
|