用C++1.编写一个Person类 包括:(1)普通数据成员:姓名(char *),性别,年龄 (2)构造函数(无参、有参),复制构造函数 (3)析构函数 (4)printf函数:输出人员信息 (5)编写main函数,创建对象P1(使用无参构造函数),P2(使用有参构造函数),P3(复制P2)
时间: 2023-10-24 22:08:39 浏览: 126
以下是C++代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class Person {
private:
char* name;
char gender;
int age;
public:
// 无参构造函数
Person() {
name = new char[1];
name[0] = '\0';
gender = ' ';
age = 0;
}
// 有参构造函数
Person(char* n, char g, int a) {
name = new char[strlen(n) + 1];
strcpy(name, n);
gender = g;
age = a;
}
// 复制构造函数
Person(const Person& p) {
name = new char[strlen(p.name) + 1];
strcpy(name, p.name);
gender = p.gender;
age = p.age;
}
// 析构函数
~Person() {
delete[] name;
}
// 输出人员信息
void printf() {
cout << "姓名:" << name << endl;
cout << "性别:" << gender << endl;
cout << "年龄:" << age << endl;
}
};
int main() {
// 创建对象P1(使用无参构造函数)
Person P1;
cout << "P1的信息:" << endl;
P1.printf();
// 创建对象P2(使用有参构造函数)
char name[] = "小明";
char gender = 'M';
int age = 18;
Person P2(name, gender, age);
cout << "P2的信息:" << endl;
P2.printf();
// 创建对象P3(复制P2)
Person P3(P2);
cout << "P3的信息:" << endl;
P3.printf();
return 0;
}
```
输出结果:
```
P1的信息:
姓名:
性别:
年龄:0
P2的信息:
姓名:小明
性别:M
年龄:18
P3的信息:
姓名:小明
性别:M
年龄:18
```
阅读全文