定义一个学生类stu,要求里面有学号,姓名(字符指针类型)2种数据成员,要求写如下成员函数:构造函数,拷贝构造函数,析构函数,显示函数。在主程序中定义stu的50个数组元素的数组对象,测试上面的类。int main() { stu s[50]; stu s2("x",1); for(int i=0;i<5;i++) s[i].display(); stu s1(s2); s2.display(); s1.display(); return 0; }
时间: 2024-01-12 11:04:56 浏览: 112
编写Student类,类中包含学生姓名,学号等私有数据成员。使用JAVA反射机制修改一个学生对象的私有数据成员
5星 · 资源好评率100%
好的,以下是您所需的代码实现:
```
#include <iostream>
#include <cstring>
using namespace std;
class stu {
private:
int num; // 学号
char* name; // 姓名
public:
stu(int n = 0, char* na = NULL) { // 构造函数
num = n;
if(na) {
name = new char[strlen(na) + 1];
strcpy(name, na);
} else {
name = NULL;
}
}
stu(const stu& s) { // 拷贝构造函数
num = s.num;
if(s.name) {
name = new char[strlen(s.name) + 1];
strcpy(name, s.name);
} else {
name = NULL;
}
}
~stu() { // 析构函数
if(name) {
delete[] name;
}
}
void display() { // 显示函数
cout << "学号:" << num << ",姓名:" << name << endl;
}
};
int main() {
stu s[50];
stu s2("x", 1);
for(int i = 0; i < 5; i++) {
s[i].display();
}
stu s1(s2);
s2.display();
s1.display();
return 0;
}
```
在这个程序中,我们定义了一个名为 `stu` 的类,其中包含了学号和姓名两个数据成员,并且还定义了构造函数、拷贝构造函数、析构函数和显示函数。在主程序中,我们定义了一个由 `stu` 对象构成的数组,并且进行了一些测试。
阅读全文