问答题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)利用define定义常量TRUE为1,定义常量FALSE为0,请在注释//********1********后添加适当的语句。 (2)在类A2前增加A1的声明,请在注释//********2********后添加适当的语句。 (3)在类C1中声明友元函数bool func(A2& a,A1&b),请在注释//********3********后添加适当的语句。 (4)实现函数bool time(A2&obj1,Alaobj2)功能,检查两个类的值都为TRUE,则返回TRUE,请在注释//********4********后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。#include<iostream.h>//********1******** #define FALSE 0//********2********Class A2{private: bool 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: ool m A1; //********3*********public: A1() { m A1=TRUE; }public: Void setAl(bool n) { m A1=n; } }; bool func(A2& obj1,A1& obj2) { //********4******** return } int main() { A2 obj0; A1 obj1; cout<<func(obj 0,obj1)<<endl; obj0.setA2(TRUE); obj1.setA1(TRUE); cout<<func(obj0,obj1)<<endl; return 0;}
【正确答案】正确答案:(1)添加语句:#define TRUE 1 (2)添加语句:class A1; (3)添加语句: friend bool func(A2&obj1,A1&obj2); (4)将“return”补充完整为: returnobj1.m A2==TRUE && obj2.m_A1==TRuE;
【答案解析】解析:(1)#define命令一般将一个指定的标识符(即宏名)来代表一个字符串,其定义形式一般为:#define宏名(参数表)字符串,因此第1个标识下应添加#define TRUE 1。 (2)类声明格式为:“class<类名>;”,故第2个标识下应添加“class A1;”。 (3)友元不是本类的成员函数,在它的函数体内部可以通过对象名来访问类的私有成员和保护成员。友元函数是在类声明中由关键字friend修饰的非成员函数,3出添加语句:“friend bool func(A2&obj1,A1&obj2);”。函数func返回变量m_A2和m_A1的逻辑与运算结果,因此第4标识下应改为“return obj1.m_A2==TRUE&&oblj2.m_A1==TRUE;”。