首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并且使程序输出的结果为: a=7,b=0 a=8,b=10 注意:错误的语句在//******error******的下面
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并且使程序输出的结果为: a=7,b=0 a=8,b=10 注意:错误的语句在//******error******的下面
admin
2018-10-23
37
问题
使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并且使程序输出的结果为:
a=7,b=0
a=8,b=10
注意:错误的语句在//******error******的下面,修改该语句即可。
1 #include<iostream.h>
2 class CObj
4 {
4 public:
5 //******error*******
6 friend void func(CObj&,int,int);
7 void display()
8 {
9 //******error******
10 cout<<’’a=’’<<a<¨,b=¨<<<<b<<end1;
11 }
12 private:
13 int a,b;
14 };
15void func(CObj& obj,int t)
16 {
17 obj.a=t;
18 obj.b=0;
19 }
20 void func(CObj& obj,int t,int j)
21 {
22 obj.a=t;
23 obj.b=j;
24 }
25 void main()
26 {
27 //******error******
28 CObj obj1
29 func(obj1,7);
30 obj1.display();
31 func(obj1,8,10);
32 obj1.display();
33 }
选项
答案
(1)添加语句:friend void func(CObj&,int); (2)cout<<’’a=’’<<a<<’’,b=’’<<b<<end1; (3)CObj obj1;
解析
程序中定义了类CObj,其有两个成员变量a和b,通过友元函数func()可改变a和b的值,display()成员函数显示a和b的值。
(1)标识1处是声明一个友元函数,友元函数是在类声明中由关键字Mend修饰的非成员函数,由friend void func(CObj&,int,int)可知,函数func()是CODj类的友元,由程序后面的具体实现可知该函数重载了,已经声明了友元函数friend void func(CObj&,int,int),另外一个友元函数func(CObj& obj,int t)没有声明,因此第1个标识下应添加“friend void func(CObj&,int);”。
(2)display()函数打印类成员变量a和b的值,cout流中的数据是用流插入运算符“<<”顺序加入的,因此“<<<<”不正确,第2个标识下应改为“cout<<’’a=’’<<a<<’’,b=’’<<b<<end1;”。
(3)标识3处是声明类对象,对象声明格式为:<类名><对象名>(<参数表>);,对象声明语句是一个完整的语句,应该以“;”结尾,因此第3个标识下应改为“CObj obj1;”。
转载请注明原文地址:https://jikaoti.com/ti/Lct0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
类clasgone在声明func成员函数时发生错误,出错原因是______。classoneprivate:inta;public:voidfunc(two&);};class
若已定义inta[]={1,2,3,4,5,6,7,8,9,10},p=a,i=5;则对数组元素的不正确的引用是
有如下程序main(){intn=9;while(n>6){n--;cout<<n<<endl;)}该程序段的输出结果是
operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为______的。
下列程序的运行结果是()。#include<iostream.h>intx=5;intfun(intA){intC;C=X*a;returnC;}voidmain()
下列程序输出的结果是()。#include<stdio.h>un1(chara,charb){charc;c=a;a=b;b=c;}fun2(char*a,charb){charc;c=*a;*a=b;b=c;}
有以下程序:#include<iostream.h>voidfun(inta,mtb,intC){a=456,b=567,c=678;}voidmain(){intx=10,y=20,z=30;
函数swap(a,n)可完成对a数组从第1个元素到第n个元素两两交换。其中b[=1;b[1]=2;swap(b,2)。在运行调用函数中的语句后,b[0]和b[1]的值分别为()。
在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承private。已知有如下类定义:classBase{protected:voidfun(){}};classD
关于构造函数A()的拷贝构造函数正确的是
随机试题
一级长途交换中心(DC1)之间以()路由网状相连。
强调团队合作、相互信任、共同目标的建立、思想观念的一致等管理观念迫使人力资源管理转向了()
下列关于艾滋病传播途径的说法错误的是()
拟建项目方案经济比选的原则有( )。
下列关于抵押人权利的表述中,错误的有()。
[*]
A,B都是n阶矩阵,并且B和E+AB都可逆,证明:B(E+AB)-1B-1=E-B(E+AB)-1A.
为加快形成制造业网络化产业生态体系,推动互联网与制造业融合,提升制造业数字化、网络化、智能化水平,需加强产业链协作,发展基于互联网的_____________新模式。
大写字母C的ASCII码为十进制数67,ASCII码为十进制数69的字母是______。
A、It’stoohigh.B、It’sacceptable.C、It’scheapindeed.D、Thewomanshouldhavebargainedforit.C[听力原文]W:Ispent$50onthi
最新回复
(
0
)