A-A+

应添加“defineTRUE1”。 (2)应添加“classA1;”。 (3)应添加“fri

2022-08-05 20:59:34 问答库 阅读 172 次

问题详情

应添加“defineTRUE1”。 (2)应添加“classA1;”。 (3)应添加“friendboolfunc(A2&objl,Al&obj2);”。 (4)将“retllin”补充完整为“returnobjl.m_A2==TRUE&&obj2.m_A1==TRUE;”。 【解析】define命令一般用一个指定的标识符(即宏 名)来代表一个字符串,其定义形式一般为“define宏名(参数表)字符串”,因此第1处应添加“defineTRUEl”。类声明格式为“class<类名>;”,故第2处应添加“class A1;”。友元不是本类的成员函数,在它的函数体内可以通过对象名来访问类的私有成员和保护成员。友元函数是在类声明中由关键字friend修饰的非成员函数,第3处应添加“friendboolfune(A2&objl,Al&obj2);”。函数func返回变量m_A2和m_A1的逻辑与运算结果,因此第4处的语句应改为“returnobj1.m_A2==TRUE&&obj2.m_A1==TRUE;”。 请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:
使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列撮作,将类的定义补充完整。
(1)利用define定义常量TRUE为1,定义常量FALSE为0,请在注释1后添加适当的语句。
(2)在类A2前增加A1的声明,请在注释2后添加适当的语句。
(3)在类Cl中声明友元函数boolrune(A2&a,A1&b),请在注释3后添加适当的语句。
(4)实现函数boolfunc(A2&obj1,Al&obj2)的功能,检查两个类的值都为TRUE,则返回TRUE,请在注释4后添加适当的语句。
注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
试题程序:
#include(iostream.h>
//********1********
#
defineFALSE0
//********2********
classA2
{
private:
boolm_A2;
friendboolfunc(A2&objl,A1&obj2);
public:
A2
{
m_A2=FALSE。
}
public:
voidsetA2(booln)
{
m_A2=n;
}
};
elaSSA1
{
private:
boolm_A1;
//********3*********
public:
A1
{
m_A1=TRUE;
}
public:
voidsetAl(booln)
{
m_A1=n;
}
};
boolfunc(A2&objl,A1&obj2)
{
//********4********
return
}
intmain
{
A20bj0;
A10bj1;
cout$amp;obj0.setA2(TRUE);
objl.setAl(TRUE);
cout$amp;return0;
}

考点: