使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)声明类objAl,请在注释∥********1********后添加适当的语句。 (2)为类0bjA0增加友元函数

admin2019-03-05  31

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)声明类objAl,请在注释∥********1********后添加适当的语句。
(2)为类0bjA0增加友元函数rune(),请在注释∥********2********后添力口适当的语句。
(3)为类objAl增加友元函数func(),请在注释∥********3********后添加适当的语句。
(4)函数rune0返回objAl对象中的变量和0bjA0的静态变量的乘积,请在注释∥********4********后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
{}include
∥********1********
class objA0
{
private:
static int m A0 ;
∥********2********
};
int objA0::m—A0=1 0;
class objAl
{
private:
int m A1;
∥********3********
public:
objAl(int i)
{
m A1=i;
}
};
int func(ohjAl&obj)
{
∥********4********
}
int main()
{
objAl obj 0(1 0);
cout<return 0,
}

选项

答案(1)添加语句:class objAl; (2)添加语句:friend int func(objAl&obj); (3)添加语句:friend int func(objAl&obj); (4)添加语句:return obj.m A1*objA0::m A0;

解析 (1)类的声明格式为:“class<类名>:”,因此第1个标识下应添加“class objAl;”。
(2)按照友元的定义格式,友元函数是在类声明中由关键字friend修饰的非成员函数,func函数在类外部给出了具体的实现形式,即“int func(objAl&obj)”,因此第2个标识下应添加“friend int func(objAl&obj);”,这里参数是objAl类对象obj。
(3)第3个标识下和题目2要求一样,均是声明友元函数,因此第2标识下应添加“friend int func(objAl&obj);”。
(4)通过参数obj对象可以直接访问obj.m_Al,objA0的静态变量m A0是所有对象的共享成员,其访问形式为:obiA0::m A0,因此第4个标识下应添加“return obj.m A1*0bjA0:.m—A0;”。
转载请注明原文地址:https://kaotiyun.com/show/tSAp777K
0

最新回复(0)