问题 填空题

使用VC6打开考生文件夹下的工程test32_1,此工程包含一个源程序文件test32_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:
Added Result for this C++tutorial:3
源程序文件test32_1.cpp清单如下:
/********** found **********/
#include<iostream>
class CPP_Tutorial

int private_data;
/***************** found *****************/
class friendclass;
public:
CPP_Tutorial()

private_data = 5;

;
class friendclass

public:
int subtractfrom(int x)

CPP_Tutorial var2;
/***************** found *****************/
return var2 - x;

;
void main()

friendclass var3;
cout << "Added Result for this C++ tutorial: "<< var3.subtractfrom(2)<<end1;

答案

参考答案:(1) 错误:ginclude<iostream>
正确:#include<iostream.h>
(2) 错误:class friendclass;
正确:friend class friendclass;
(3) 错误:return var2-x;
正确;return var2.private_data-x;

解析:
(1)主要考查考生是否理解头文件的概念,在C++中可以把已经定义好的或者系统自带的类定义引入自建的工程中,其方式就是通过使用头文件,把要引入的结构放在头文件(.h结尾的)中,在自建工程的开头使用#include加入即可,不过应该使用头文件的全名,题目中错误的丢掉了扩展名.h;
(2)主要考查考生是否掌握了友元类的定义,友元类是声明在一个类内的新的类,友元类的所有成员都可以访问原来类的所有成员,所以友元类破坏了程序的封装性,不过只有友元类和友元函数能够直接访问所在类的私有成员,题目中的类 friendclass将要访问所在类的私有成员,所以应该被定义成友元类;
(3)主要考查考生对于对象和对象成员操作的掌握,var2是类CPP_Tutorial的对象,它不能直接和数据成员操作,应该使用对象访问成员的操作符“.”操作它的数据成员private_data和x进行操作。

不定项选择
填空题