使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。 (1)利用define定义常量TRUE为1,定义常量FALSE为0,请在注释1后添加适当的语句。 (2)在类A2前增加A

admin2013-10-15  9

问题 使用VC++6.0打开考生文件夹下的源程序文件3.cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
    (1)利用define定义常量TRUE为1,定义常量FALSE为0,请在注释1后添加适当的语句。
    (2)在类A2前增加A1的声明,请在注释2后添加适当的语句。
    (3)在类C1中声明友元函数bool func(A2&a,A1&b),请在注释3后添加适当的语句。
    (4)实现函数bool func(A2&.obj1,A1&obj2)的功能,检查两个类的值都为TRUE,则返回TRUE,请在注释4后添加适当的语句。
    注意:除在指定位置添加语句之外,不要改动程序中的其他内容。
    试题程序:
#include
//* * * * * * * * 1 * * * * * * * *
#
define FALSE 0
//* * * * * * * * 1 * * * * * * * *
class A2
{
private:
boot m_A2;
friend bool func(A2& obj1,A1& obj2);
public:
A2()
{
  m_A2=FALSE;
}
public:
void setA2(bool n)
{
  m_A2=n;
}
};
class A1
{
private:
bool m_A1;
//* * * * * * * * 3 * * * * * * * *
public:
A1()
{
  m_A1=TRUE;
}
public:
void setAl(bool n)
{
  m_A1=n;
}
};
bool func(A2 obj1,A1& obj2)
{
//* * * * * * * * 3 * * * * * * * *
  return
}
int main()
{
A2 obj0;
A1 obj1;
cout<obj0.setA2(TRUE);
obj1.setA1(TRUE);
cout<return 0;
}

选项

答案(1)应添加“#define TRUE 1”。 (2)应添加“class A1;”。 (3)应添加“friend bool func(A2&obj1,A1 &obj2);”。 (4)将“return”补充完整为“return obj1.m_A2==TRUE&& obj2.m_A1==TRUE;”。

解析 #define命令一般用一个指定的标识符(即宏名)来代表一个字符串,其定义形式一般为“#define宏名(参数表)字符串”,因此第1处应添加“#define TRUE 1”。类声明格式为“class(类名>;”,故第2处应添加“class A1;”。友元不是本类的成员函数,在它的函数体内可以通过对象名来访问类的私有成员和保护成员。友元函数是在类声明中由关键字friend修饰的非成员函数,第3处应应添加“friend bool func(A2& obj1,A1& obj2);”。 函数func返回变量m_A2和m_A1的逻辑与运算结果,因此第4处的语句应改为“return obj1.m_A2==TRUE&& obj2.m_A1==TRUE;”。
转载请注明原文地址:https://jikaoti.com/ti/8vXiFFFM
0

随机试题
最新回复(0)