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

admin2010-02-08  58

问题 使用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进行操作。
转载请注明原文地址:https://jikaoti.com/ti/dFkiFFFM
0

最新回复(0)