声明一个 Employee 类,其中包括姓名、地址(使用指针,动态分配空间和设置内容)、邮编等属性,以及 change name、change_address和 display等函数。display()显示姓名、地址、邮编等属性, change_name改变对象的姓名属性,change_address更改地址信息。
时间: 2023-06-16 07:07:37 浏览: 126
以下是一个示例的 Employee 类的实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class Employee {
private:
char* name;
char* address;
int zipcode;
public:
Employee(const char* n, const char* a, int z) {
name = new char[strlen(n)+1];
strcpy(name, n);
address = new char[strlen(a)+1];
strcpy(address, a);
zipcode = z;
}
~Employee() {
delete[] name;
delete[] address;
}
void display() {
cout << "Name: " << name << endl;
cout << "Address: " << address << endl;
cout << "Zipcode: " << zipcode << endl;
}
void change_name(const char* n) {
delete[] name;
name = new char[strlen(n)+1];
strcpy(name, n);
}
void change_address(const char* a) {
delete[] address;
address = new char[strlen(a)+1];
strcpy(address, a);
}
};
int main() {
Employee e("John Doe", "123 Main St", 12345);
e.display();
e.change_name("Jane Doe");
e.change_address("456 Second St");
e.display();
return 0;
}
```
在这个示例中,Employee 类具有一个私有成员变量 name 和 address,它们都是指向 char 的指针。在构造函数中,我们使用 new 运算符动态分配了内存,并使用 strcpy 函数将字符串复制到相应的内存位置。在析构函数中,我们使用 delete[] 运算符释放了这些内存。display、change_name和change_address函数分别用于显示员工信息,更改员工名称和更改员工地址。
阅读全文