【答案解析】(1)添加语句:baseA(int m){a=m;}
(2)添加语句:priA1(int m,int n):baseA(n){b=m;}
(3)添加语句:priA2(int m,int n,int k): priA1(n,k){c=m;}
(4)添加语句:cout
<
<
geta()
<
<
""
<
<
getb()
<
<
""
<
<
c
<
<
endl;
答案考生文件夹
[解析] 程序当中定义了类baseA、priA1和priA2,其中priA1类由baseA类公有派生,priA2类由priA1类公有派生。构造函数是类的一种特殊的成员函数,其函数名和类名一致。构造函数可以带参数也可以不带参数,带参数的构造函数根据构造函数内部赋值语句可知其参数形式。公有派生类可以访问基类的公有成员,因此priA2类可以调用类baseA的geta()函数和priA1类的getb()函数,通过调用这两个函数得到基类私有成员a和b。
(1)根据题目1要示,构造函数函数名和类名一致,显然baseA构造函数名为baseA(),在baseA()通过参数m完成对成员变量a的赋值,因此构造函数名为baseA(int m),在函数内部对成员a赋值,故第1个标识下应添加“baseA(int m){a=m;}”。
(2)根据题目2要示,构造函数形式为priA1(int m,int n),m赋值给priA1类成员b,将n作为基类baseA构造函数的参数值传入,故第2个标识下应添加“priA1(int m,int n):baseA(n){b=m;}”。
(3)根据题目3要示,函数形式为priA2(int m,int n,int k),在构造函数中将m赋值给数据成员c,将n和k分别赋值给基类priA1构造函数的参数m和n,因此第3个标识下应添加“priA2(int m,int n,int k):priA1(n,k){c=m;}”。
(4)根据题目4要示,priA2类公有派生于priA1,而priA1公有派生于baseA,因此在priA2类中可以调用基类的geta()和getb()来获得基类私有成员a和b,再输出priA2的私有成员c即满足要求,因此第4个标识下应添加“cout
<
<
geta()
<
<
" "
<
<
getb()
<
<
" "
<
<
c
<
<
endl;”。