以下是题目:
以下为我的代码:
#include<iostream>
#include<cstring>
#pragma warning(disable : 4996)
//_CRT_SECURE_NO_WARNINGS;
using namespace std;
class Employee {
//friend void Manager::display();
protected:
char m_cName[10], m_cNo[10];
int m_nDepartment;
public:
/*Employee() :m_cName("0"), m_cNo("0"), m_nDepartment(0) {}*/
/*Employee() {
memset(m_cName, 0, sizeof(m_cName));
memset(m_cNo, 0, sizeof(m_cNo));
m_nDepartment = 0;
}*/
Employee(const char* p_cName = "", const char* p_cNo = "", const int nDept = 0) {
strcpy(m_cName, p_cName);
strcpy(m_cNo, p_cNo);
m_nDepartment = nDept;
}
Employee(char* p_cName, char* p_cNo, int nDept) {
strcpy(m_cName, p_cName);
strcpy(m_cNo, p_cNo);
m_nDepartment = nDept;
}
void setname(char* p_cName) {
for (int i = 0; i < 10; i++) {
m_cName[i] = *(p_cName + i);
}
}
void setno(char* p_cNo) {
for (int i = 0; i < 10; i++) {
m_cNo[i] = *(p_cNo + i);
}
}
void setdept(int nDept) {
m_nDepartment = nDept;
}
void display() {
cout << "姓名为" << m_cName << endl;
cout << "编号为" << m_cNo << endl;
cout << "部门号为" << m_nDepartment << endl;
}
};
class Manager :public Employee {
private:
int m_Level;
public:
Manager(char* p_cName, char* p_cNo, int nDept, int p_level) : Employee(p_cName, p_cNo, nDept) {
m_Level = p_level;
cout << "派生类的构造函数被调用!" << endl;
}
void setlevel(int p_Level) {
m_Level = p_Level;
}
void display();
};
void Manager::display() {
cout << "姓名为" << m_cName << endl;
cout << "编号为" << m_cNo << endl;
cout << "部门号为" << m_nDepartment << endl;
cout << "级别为" << m_Level << endl;
}
int main
() {
Employee e1;
char e1_p_cName[10] = "zhangsan", e1_p_cNo[10] = "22020247"; int e1_nDept = 618;
e1.setname(&e1_p_cName[10]);
e1.setno(&e1_p_cNo[10]);
e1.setdept(e1_nDept);
e1.display();
/*Employee e2 = Employee("lisi", "22020201", 619);*/
}
以下为我的错误输出:
e1.setno(&e1_p_cNo[10]);
->
e1.setno(&e1_p_cNo[0]);