我已经做了一段时间的工作了。以下是说明:
您要设计一个名为Employee的抽象类,其成员是 如下所示(使它们受到保护):
数据成员:char * name,long int ID
两个构造函数:一个Default构造函数//将数据memebrs初始化为 默认值和复制构造函数
方法:setPerson(char * n,long int id)//允许用户设置 每个人的信息一个名为Print()//的函数应该是a 虚函数,用于打印类的数据属性。和a 析
还定义了两个派生自Employee类的类,称为 经理和秘书。每个类都应该继承来自的所有成员 基类,也有自己的数据成员和成员函数。 经理应该有一个名为学位的数据成员为他/她 本科学位(如文凭,学士,硕士,博士), 秘书应该有她的合同(可以是布尔值1/0 for 永久/暂时的)。
派生类的所有成员函数都应该被覆盖 基类。
编写以下main()来测试您的类
int main() { Employee * p = new Manager(“Bruce Lee”, 0234567, “Dr.”); P.print(); Secretary p2; p2.setPerson(“Wilma Jones”, 0341256, “permanent”); delete p; p = & p2; p.Print(); return 0; }
这是我到目前为止所提出的所有内容,但我很确定它充满了错误,我的论点和变量类型都已关闭。
#include <iostream>
using namespace std;
class Employee{
protected:
char *name;
long int ID;
public:
Employee();
Employee(Employee&);
void setPerson(char * n, long int eID) {
name = n;
ID = eID; };
virtual void Print(){
cout << "Name: " << name << endl;
cout << "ID: " << ID << endl; };
};
class Manager: public Employee {
protected:
char *degree;
public:
void setPerson(char * n, long int eID, char * d){
name = n;
ID = eID;
degree = d;
};
void Print() {
cout << "Name: " << name << endl;
cout << "ID: " << ID << endl;
cout << "Degree: " << degree << endl;
};
};
class Secretary: public Employee {
protected:
bool contract;
public:
void setPerson(char * n, long int eID, string c){
name = n;
ID = eID;
if (c == "permanent") contract = true;
else contract = false;
};
void Print(){
cout << "Name: " << name << endl;
cout << "ID: " << ID << endl;
cout << "Contract: " << contract << endl;
};
};
int main() {
Employee * P = new Manager("Bruce Lee", 0234567, "Dr.");
P.Print();
Secretary P2;
P2.setPerson("Wilma Jones", 0341256, "permanent");
delete P;
P = & P2;
P.Print();
return 0;
}
我在第62行(主代码的第一行)收到错误:
没有用于初始化Manager
的匹配构造函数
我尝试过阅读类似的问题,但他们对我帮助不大。我认为最令人困惑的是合约是bool值和使用char参数。任何指导都表示赞赏。
答案 0 :(得分:2)
你得到的错误很简单:你没有Manager
(或Employee
)的任何构造函数,它接受一个字符串,整数(?)和字符串作为参数
答案 1 :(得分:0)
您已声明构造函数员工但未定义它。 查看班级员工,在publc下宣布
MemTotal: 256708 kB
MemFree: 4896 kB
Buffers: 0 kB
Cached: 181892 kB
SwapCached: 0 kB
Active: 178140 kB
Inactive: 46496 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 256708 kB
LowFree: 4896 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
Mapped: 56656 kB
Slab: 11252 kB
CommitLimit: 128352 kB
Committed_AS: 175668 kB
PageTables: 908 kB
VmallocTotal: 737280 kB
VmallocUsed: 113084 kB
VmallocChunk: 624100 kB
slabinfo - version: 2.1
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <batchcount> <limit> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
rwsem_lock_cache 0 0 64 59 1 : tunables 120 60 0 : slabdata 0 0 0
rwsem_owner_cache 16 59 64 59 1 : tunables 120 60 0 : slabdata 1 1 0
rwsem_sap_cache 0 0 128 30 1 : tunables 120 60 0 : slabdata 0 0 0
pss_node_cache 0 0 32 113 1 : tunables 120 60 0 : slabdata 0 0 0
mts-sapinfo-cache 0 0 1152 7 2 : tunables 24 12 0 : slabdata 0 0 0
mts-sap-desc-cache 34 36 448 9 1 : tunables 54 27 0 : slabdata 4 4 0
mts-qentry-cache 5 59 64 59 1 : tunables 120 60 0 : slabdata 1 1 0
mts-rcpnt-cache 1 1 5568 1 2 : tunables 8 4 0 : slabdata 1 1 0
rpc_buffers 8 8 2048 2 1 : tunables 24 12 0 : slabdata 4 4 0
rpc_tasks 8 24 160 24 1 : tunables 120 60 0 : slabdata 1 1 0
rpc_inode_cache 0 0 416 9 1 : tunables 54 27 0 : slabdata 0 0 0
unix_sock 70 70 384 10 1 : tunables 54 27 0 : slabdata 7 7 0
tcp_tw_bucket 0 0 96 40 1 : tunables 120 60 0 : slabdata 0 0 0
tcp_bind_bucket 25 203 16 203 1 : tunables 120 60 0 : slabdata 1 1 0
tcp_open_request 2 59 64 59 1 : tunables 120 60 0 : slabdata 1 1 0
inet_peer_cache 4 59 64 59 1 : tunables 120 60 0 : slabdata 1 1 0
ip_fib_alias 23 203 16 203 1 : tunables 120 60 0 : slabdata 1 1 0
ip_fib_hash 23 113 32 113 1 : tunables 120 60 0 : slabdata 1 1 0
ip_dst_cache 34 45 256 15 1 : tunables 120 60 0 : slabdata 3 3 0
arp_cache 13 24 160 24 1 : tunables 120 60 0 : slabdata 1 1 0
raw_sock 8 8 480 8 1 : tunables 54 27 0 : slabdata 1 1 0
udp_sock 7 8 480 8 1 : tunables 54 27 0 : slabdata 1 1 0
tcp_sock 29 36 1024 4 1 : tunables 54 27 0 : slabdata 9 9 0
flow_cache 0 0 96 40 1 : tunables 120 60 0 : slabdata 0 0 0
cfq_ioc_pool 0 0 24 145 1 : tunables 120 60 0 : slabdata 0 0 0
cfq_pool 0 0 104 37 1 : tunables 120 60 0 : slabdata 0 0 0
crq_pool 0 0 52 72 1 : tunables 120 60 0 : slabdata 0 0 0
deadline_drq 0 0 48 78 1 : tunables 120 60 0 : slabdata 0 0 0
as_arq 4 63 60 63 1 : tunables 120 60 0 : slabdata 1 1 0
mqueue_inode_cache 1 8 480 8 1 : tunables 54 27 0 : slabdata 1 1 0
jffs2_inode_cache 24 145 24 145 1 : tunables 120 60 0 : slabdata 1 1 0
jffs2_node_frag 36493 36576 28 127 1 : tunables 120 60 0 : slabdata 288 288 0
jffs2_raw_node_ref 52018 52171 16 203 1 : tunables 120 60 0 : slabdata 257 257 0
jffs2_tmp_dnode 0 0 24 145 1 : tunables 120 60 0 : slabdata 0 0 0
jffs2_raw_inode 0 0 68 56 1 : tunables 120 60 0 : slabdata 0 0 0
jffs2_raw_dirent 0 0 40 92 1 : tunables 120 60 0 : slabdata 0 0 0
jffs2_full_dnode 36494 36540 16 203 1 : tunables 120 60 0 : slabdata 180 180 0
jffs2_i 13 24 328 12 1 : tunables 54 27 0 : slabdata 2 2 0
nfs_write_data 36 36 448 9 1 : tunables 54 27 0 : slabdata 4 4 0
nfs_read_data 32 36 448 9 1 : tunables 54 27 0 : slabdata 4 4 0
nfs_inode_cache 0 0 544 7 1 : tunables 54 27 0 : slabdata 0 0 0
nfs_page 0 0 64 59 1 : tunables 120 60 0 : slabdata 0 0 0
dnotify_cache 0 0 20 169 1 : tunables 120 60 0 : slabdata 0 0 0
kioctx 0 0 192 20 1 : tunables 120 60 0 : slabdata 0 0 0
kiocb 0 0 128 30 1 : tunables 120 60 0 : slabdata 0 0 0
fasync_cache 0 0 16 203 1 : tunables 120 60 0 : slabdata 0 0 0
shmem_inode_cache 169 170 384 10 1 : tunables 54 27 0 : slabdata 17 17 0
posix_timers_cache 0 0 100 39 1 : tunables 120 60 0 : slabdata 0 0 0
uid_cache 0 0 64 59 1 : tunables 120 60 0 : slabdata 0 0 0
blkdev_ioc 0 0 24 145 1 : tunables 120 60 0 : slabdata 0 0 0
blkdev_queue 25 30 368 10 1 : tunables 54 27 0 : slabdata 3 3 0
blkdev_requests 4 28 140 28 1 : tunables 120 60 0 : slabdata 1 1 0
biovec-(256) 256 256 3072 2 2 : tunables 24 12 0 : slabdata 128 128 0
biovec-128 256 260 1536 5 2 : tunables 24 12 0 : slabdata 52 52 0
biovec-64 256 260 768 5 1 : tunables 54 27 0 : slabdata 52 52 0
biovec-16 256 260 192 20 1 : tunables 120 60 0 : slabdata 13 13 0
biovec-4 256 295 64 59 1 : tunables 120 60 0 : slabdata 5 5 0
biovec-1 256 406 16 203 1 : tunables 120 60 0 : slabdata 2 2 0
bio 256 295 64 59 1 : tunables 120 60 0 : slabdata 5 5 0
file_lock_cache 65 80 96 40 1 : tunables 120 60 0 : slabdata 2 2 0
sock_inode_cache 121 121 352 11 1 : tunables 54 27 0 : slabdata 11 11 0
skbuff_head_cache 560 560 192 20 1 : tunables 120 60 0 : slabdata 28 28 0
sock 9 12 320 12 1 : tunables 54 27 0 : slabdata 1 1 0
proc_inode_cache 1196 1196 304 13 1 : tunables 54 27 0 : slabdata 92 92 0
sigqueue 26 26 148 26 1 : tunables 120 60 0 : slabdata 1 1 0
radix_tree_node 2030 2030 276 14 1 : tunables 54 27 0 : slabdata 145 145 0
bdev_cache 1 9 416 9 1 : tunables 54 27 0 : slabdata 1 1 0
mnt_cache 20 40 96 40 1 : tunables 120 60 0 : slabdata 1 1 0
inode_cache 2665 2665 288 13 1 : tunables 54 27 0 : slabdata 205 205 0
dentry_cache 4147 4147 136 29 1 : tunables 120 60 0 : slabdata 143 143 0
filp 1380 1440 160 24 1 : tunables 120 60 0 : slabdata 60 60 0
names_cache 4 4 4096 1 1 : tunables 24 12 0 : slabdata 4 4 0
idr_layer_cache 97 116 136 29 1 : tunables 120 60 0 : slabdata 4 4 0
buffer_head 0 0 48 78 1 : tunables 120 60 0 : slabdata 0 0 0
mm_struct 44 49 544 7 1 : tunables 54 27 0 : slabdata 7 7 0
vm_area_struct 3452 3680 84 46 1 : tunables 120 60 0 : slabdata 80 80 0
fs_cache 45 113 32 113 1 : tunables 120 60 0 : slabdata 1 1 0
files_cache 42 45 416 9 1 : tunables 54 27 0 : slabdata 5 5 0
signal_cache 57 60 256 15 1 : tunables 120 60 0 : slabdata 4 4 0
sighand_cache 55 60 1312 3 1 : tunables 24 12 0 : slabdata 20 20 0
task_struct 96 100 960 4 1 : tunables 54 27 0 : slabdata 25 25 0
anon_vma 1273 1356 8 339 1 : tunables 120 60 0 : slabdata 4 4 0
size-131072(DMA) 0 0 131072 1 32 : tunables 8 4 0 : slabdata 0 0 0
size-131072 1 1 131072 1 32 : tunables 8 4 0 : slabdata 1 1 0
size-65536(DMA) 0 0 65536 1 16 : tunables 8 4 0 : slabdata 0 0 0
size-65536 0 0 65536 1 16 : tunables 8 4 0 : slabdata 0 0 0
size-32768(DMA) 0 0 32768 1 8 : tunables 8 4 0 : slabdata 0 0 0
size-32768 1 1 32768 1 8 : tunables 8 4 0 : slabdata 1 1 0
size-16384(DMA) 0 0 16384 1 4 : tunables 8 4 0 : slabdata 0 0 0
size-16384 8 8 16384 1 4 : tunables 8 4 0 : slabdata 8 8 0
size-8192(DMA) 0 0 8192 1 2 : tunables 8 4 0 : slabdata 0 0 0
size-8192 3 3 8192 1 2 : tunables 8 4 0 : slabdata 3 3 0
size-4096(DMA) 0 0 4096 1 1 : tunables 24 12 0 : slabdata 0 0 0
size-4096 278 278 4096 1 1 : tunables 24 12 0 : slabdata 278 278 0
size-2048(DMA) 0 0 2048 2 1 : tunables 24 12 0 : slabdata 0 0 0
size-2048 292 292 2048 2 1 : tunables 24 12 0 : slabdata 146 146 0
size-1024(DMA) 0 0 1024 4 1 : tunables 54 27 0 : slabdata 0 0 0
size-1024 60 60 1024 4 1 : tunables 54 27 0 : slabdata 15 15 0
size-512(DMA) 0 0 512 8 1 : tunables 54 27 0 : slabdata 0 0 0
size-512 216 216 512 8 1 : tunables 54 27 0 : slabdata 27 27 0
size-256(DMA) 0 0 256 15 1 : tunables 120 60 0 : slabdata 0 0 0
size-256 76 90 256 15 1 : tunables 120 60 0 : slabdata 6 6 0
size-192(DMA) 0 0 192 20 1 : tunables 120 60 0 : slabdata 0 0 0
size-192 139 140 192 20 1 : tunables 120 60 0 : slabdata 7 7 0
size-128(DMA) 0 0 128 30 1 : tunables 120 60 0 : slabdata 0 0 0
size-128 857 870 128 30 1 : tunables 120 60 0 : slabdata 29 29 0
size-96(DMA) 0 0 96 40 1 : tunables 120 60 0 : slabdata 0 0 0
size-96 1049 1080 96 40 1 : tunables 120 60 0 : slabdata 27 27 0
size-64(DMA) 0 0 64 59 1 : tunables 120 60 0 : slabdata 0 0 0
size-64 4425 4425 64 59 1 : tunables 120 60 0 : slabdata 75 75 0
size-32(DMA) 0 0 32 113 1 : tunables 120 60 0 : slabdata 0 0 0
size-32 4633 4633 32 113 1 : tunables 120 60 0 : slabdata 41 41 0
kmem_cache 120 120 128 30 1 : tunables 120 60 0 : slabdata 4 4 0
但是你还没有定义这个功能。你需要
Employee();
Employee(Employee&);
另一个用于另一个签名。