定义一个名为employee的公共类
时间: 2023-06-15 19:06:29 浏览: 42
以下是一个定义名为`employee`的公共类的示例代码:
```python
class employee:
def __init__(self, name, age, position):
self.name = name
self.age = age
self.position = position
def introduce_self(self):
print("Hello, my name is " + self.name + " and I am a " + self.position)
```
这个类有三个属性:`name`,`age`和`position`。它还有一个方法`introduce_self`,用于介绍员工的名字和职位。可以通过以下方式创建和使用这个类的对象:
```python
emp1 = employee("John", 28, "developer")
emp2 = employee("Alice", 32, "manager")
emp1.introduce_self() # 输出:Hello, my name is John and I am a developer
emp2.introduce_self() # 输出:Hello, my name is Alice and I am a manager
```
这个类可以用于表示公司中的员工,并且可以轻松地添加其他属性和方法来满足不同的需求。
相关问题
创建一个Employee类,该类中用字符数组存放Employee的信息,如姓名、地址、市、省、及邮政编码;每个成员函数的定义放在类定义之外;成员函数包括改变姓名数据成员等;构造函数完成成员数据的初始化;用Display()函数将完整的对象数据打印出来;其中数据成员是保护的,成员函数是公共的。(c++)
好的,这是一个简单的实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class Employee {
protected:
char name[50];
char address[100];
char city[50];
char state[50];
char zipcode[10];
public:
Employee(char *n, char *a, char *c, char *s, char *z) {
strcpy(name, n);
strcpy(address, a);
strcpy(city, c);
strcpy(state, s);
strcpy(zipcode, z);
}
void changeName(char *n) {
strcpy(name, n);
}
void Display() {
cout << "Name: " << name << endl;
cout << "Address: " << address << endl;
cout << "City: " << city << endl;
cout << "State: " << state << endl;
cout << "Zipcode: " << zipcode << endl;
}
};
int main() {
Employee emp("John Smith", "123 Main St", "Anytown", "CA", "12345");
emp.Display();
emp.changeName("Jane Doe");
emp.Display();
return 0;
}
```
在这个例子中,我们定义了一个名为 `Employee` 的类,它有五个数据成员,包括姓名、地址、城市、州和邮政编码。这些数据成员被保护,因此只能在类内部或派生类中访问。我们还定义了一个构造函数,它初始化了数据成员,并定义了两个公共成员函数:`changeName` 和 `Display`。`changeName` 函数用于更改 `name` 数据成员的值,`Display` 函数用于打印整个对象的数据。在 `main` 函数中,我们创建了一个名为 `emp` 的 `Employee` 对象,并使用 `Display` 函数打印其数据。然后,我们使用 `changeName` 函数更改 `name` 数据成员的值,并再次使用 `Display` 函数打印对象的数据,以验证更改是否成功。
用C++写代码:创建一个 Employee 类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。把表示构造函数、ChangeName()、Display()的函数原型放在类定义中,构造函数初始化每个成员,Display()函数把完整的对象数据打印出来。其中的数据成员是保护的,函数是公共的。将姓名构成类 Name,其名和姓在该类中为保护数据成员,其构造函数为接收一个指向完整姓名字符串的指针,其 Display()函数输出姓名。然后将Employee 类中的姓名成员(字符数组)换成 Name 类对象。将所有原型化的函数加上成员函数定义,作为类的内部实现文件构成完整的类库定义,要求类定义与类的成员函数定义分开。
以下是完整的类库定义:
Employee.h
```cpp
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
#include "Name.h"
class Employee {
protected:
Name name;
char address[100];
char city[50];
char state[50];
char zip[20];
public:
Employee(const char* fullName, const char* address, const char* city, const char* state, const char* zip);
void ChangeName(const char* fullName);
void Display() const;
};
#endif
```
Employee.cpp
```cpp
#include "Employee.h"
#include <iostream>
Employee::Employee(const char* fullName, const char* address, const char* city, const char* state, const char* zip)
: name(fullName) {
strcpy_s(this->address, address);
strcpy_s(this->city, city);
strcpy_s(this->state, state);
strcpy_s(this->zip, zip);
}
void Employee::ChangeName(const char* fullName) {
name = Name(fullName);
}
void Employee::Display() const {
std::cout << "Name: ";
name.Display();
std::cout << "Address: " << address << std::endl;
std::cout << "City: " << city << std::endl;
std::cout << "State: " << state << std::endl;
std::cout << "Zip: " << zip << std::endl;
}
```
Name.h
```cpp
#ifndef NAME_H
#define NAME_H
class Name {
protected:
char firstName[50];
char lastName[50];
public:
Name(const char* fullName);
void Display() const;
};
#endif
```
Name.cpp
```cpp
#include "Name.h"
#include <iostream>
Name::Name(const char* fullName) {
// Split full name into first and last names
int spaceIndex = strchr(fullName, ' ') - fullName;
strncpy_s(firstName, fullName, spaceIndex);
firstName[spaceIndex] = '\0';
strcpy_s(lastName, fullName + spaceIndex + 1);
}
void Name::Display() const {
std::cout << firstName << " " << lastName << std::endl;
}
```