首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)声明类objA1,请在注释//********1********后添加适当的语句。 (2)为类ob
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能: (1)声明类objA1,请在注释//********1********后添加适当的语句。 (2)为类ob
admin
2018-10-23
77
问题
使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。完成以下功能:
(1)声明类objA1,请在注释//********1********后添加适当的语句。
(2)为类objA0增加友元函数func(),请在注释//********2********后添加适当的语句。
(3)为类0bjA1增加友元函数func(),请在注释//********3********后添加适当的语句。
(4)函数func()返回objA1对象中的变量和objA0的静态变量的乘积,请在注释//********4********后添加适当的语句。
注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
1 #include<iostream.h>
2 //********1********
3
4 class objA0
5 {
6 private:
7 statiC int m_A0;
8 //********2********
9
10 };
11 int objA0::m_A0=10;
12 class objA1
13 {
14 private:
15 int m_A1;
16 //********3********
17
18 public:
19 objA1(int i)
20 {
21 m_A1=i;
22 }
23 };
24 int func(objA1& obj)
25 {
26 //********4********
27
28 }
29 int main()
30 {
31 objA1 obj0(10);
32 cout<<func(obj0)<<end1;
33 return 0;
34 }
选项
答案
(1)添加语句:class objA1; (2)添加语句:friend int func(objA1&obj); (3)添加语句:friend int func(objA1&obj); (4)添加语句:return obj.mA1*objA0::m_A0;
解析
友元提供了不同类或对象的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制,友元不是本类的成员函数,在它的函数体内部可以通过对象名来访问类的私有成员和保护成员。友元函数是在类声明中由关键字friend修饰的非成员函数。func()函数为类objA1的友元,因此可以通过对象名直接访问到objA1的私有成员变量。
(1)类的声明格式为:“class<类名>;”,因此第1个标识下应添加“class objA1:”。
(2)按照友元的定义格式,友元函数是在类声明中由关键字Mend修饰的非成员函数,func函数在类外部给出了具体的实现形式,即“int func(objA1&obj)”,因此第2个标识下应添加“friend int func(objA1&obj);”,这里参数是objA1类对象obj。
(3)第3个标识下和题目2要求一样,均是声明友元函数,因此第2标识下应添加“friend intfunc(objA1&obj);”。
(4)通过参数obj对象可以直接访问obj.m_A1,objA0的静态变量m_A0是所有对象的共享成员,其访问形式为:objA0::m_A0,因此第4个标识下应添加“return obj.m_A1*objA0::m_A0;”。
转载请注明原文地址:https://www.kaotiyun.com/show/MwAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
关系模型允许定义3类数据约束,下列不属于数据约束的是()。
在类的对象被创建时,______函数会被自动调用。
下面程序的结果是#include"iostream.h"voidmain(){char*str;Str="test!";cout<<str[5];}
若有如下变量定义和函数调用语句:inta=5;fun(&A);则执行下面函数后正确的输出结果是()。voidfun(int*x){cout<<++*
下列程序的输出结果是()。#include<iostream>usingnamespacestd;intmain(){chara[]="Hello,Test";char
下面程序的输出结果为【】。#include<iostream>usingnamespacestd;voidinitialize(intprintNo,intstate=0);voidinitialize(iht
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。
在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为______。
以下各选项组中,均是C++语言关键字的组是
随机试题
在马克思主义发展史上,第一次把解放生产力、发展生产力作为社会主义本质规定的是()
当颈部发现原发病灶不明的转移癌时,应首先仔细检查
彩色多普勒技术和超声负荷试验并用可以()。
检测限与定量限的区别在于
商业银行应与借款人在借款合同中约定,出现()情形的,借款人应承担的违约责任和贷款人可采取的措施。
在海上货物运输保险中,保险人承保的风险主要分为()。
根据专家推断,2006年内人民币将升值3%左右,按4月5日外汇市场美元兑人民币汇率的中间价推算,人民币对美元的汇率到2006年年底将跌至多少?( )4月5日人民币对美元汇率的收盘价是( ),创汇改以来的新高。
AprovenmethodforeffectivetextbookreadingistheSQ3RmethoddevelopedbyFrancisRobinson.Thefirststepistosurvey(th
网络连接和IP地址分配如下图所示,并且配置了RIPv2路由协议。如果在路由器R1上运行命令:R1#show ip route,下面4条显示信息中正确的是(52)。
WhatdoyouknowabouttheRiverNile?
最新回复
(
0
)