声明一个学生类Student,设计私有数据成员: 年龄 age; 姓名 name;静态数据成员:学生人数 count; 定义4个公有成员函数:参数带默认值Ɛ, “no”)的构造函数,改变学生姓名的函数setName,获取数据成员函数getAge, getName;定义静态成员函数showCount;定义友元函数:修改学生年龄 changeAge。
时间: 2023-06-10 20:07:24 浏览: 319
c++面向对象设计语言
以下是学生类Student的定义:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
int age;
string name;
static int count;
public:
Student(int age = 0, string name = "no") {
this->age = age;
this->name = name;
count++;
}
void setName(string name) {
this->name = name;
}
int getAge() {
return age;
}
string getName() {
return name;
}
static void showCount() {
cout << "Number of students: " << count << endl;
}
friend void changeAge(Student& s, int age);
};
int Student::count = 0;
void changeAge(Student& s, int age) {
s.age = age;
}
int main() {
Student s1(20, "Tom");
Student s2(22, "Jerry");
Student::showCount();
cout << s1.getName() << " is " << s1.getAge() << " years old." << endl;
changeAge(s1, 21);
cout << s1.getName() << " is " << s1.getAge() << " years old." << endl;
s2.setName("Lucy");
cout << s2.getName() << " is " << s2.getAge() << " years old." << endl;
return 0;
}
```
在上面的代码中,我们定义了一个学生类Student,其中包含私有数据成员age和name,以及一个静态数据成员count。age和name用于存储学生的年龄和姓名,count用于记录学生的数量。
我们还定义了4个公有成员函数:一个构造函数,一个改变学生姓名的函数setName,一个获取数据成员函数getAge和一个获取数据成员函数getName。构造函数有两个参数,其中age的默认值是0,name的默认值是"no"。
我们还定义了一个静态成员函数showCount,用于显示学生的数量。
最后,我们定义了一个友元函数changeAge,用于修改学生的年龄。在main函数中,我们创建了两个学生对象s1和s2,调用了它们的成员函数和静态成员函数,并调用了友元函数changeAge修改了s1的年龄。
阅读全文