阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。 【说明】 在下面函数横线处填上适当的字句,使其输出结果为: 构造函数. 构造函数. 1,2 5,6 析构函数 析

admin2010-01-15  33

问题 阅读以下说明,以及用C++在开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏内。
    【说明】
   在下面函数横线处填上适当的字句,使其输出结果为:
   构造函数.
   构造函数.
   1,2
   5,6
   析构函数
   析构函数.
   【C++代码】
   #include "iostream.h"
   class AA
   { public;
        AA(int i,int j)
        {A=i; B=j;
          cout<<"构造函数.\n";
        }
        ~AA(){(1);}
        void print();
     private:
        int A, B;
   };
   void AA∷print()
   {cout<<A<<","<<B<<endl;}
     void main()
      {
          AA *a1, *a2;
           (2)=new AA(1, 2);
          a2=new AA(5, 6);
           (3);
          a2->print();
           (4)  a1;
           (5)  a2;
   }

选项

答案(1)cout<<"析构函数.\n" (2)a1 (3)a1—>print() (4)delete (5)delete

解析 本题考查用C++语言对输出的实现。
   题目中没有什么条件,只给出了输出结构,要求程序能实现这个输出。下面来具体分析代码。
   第(1)空很明显是类AA的析构函数的函数体,类的析构函数一般在撤销一个对象时调用,根据题目的要求,要输出析构函数这样的结果,而在程序中没有与此相关的操作,那么此空应该是用来实现这个功能的,借鉴构造函数中的内容,我们很容易就得出此空答案为cout<<"析构函数.\n"。
   第(2)空在主函数中,很明显此空所在的语句是创建一个AA类的对象,并让一个AA型的指针变量指向这个对象。在函数开始的时候声明了两个AA型的指针变量a1和a2,而a2在下面已经有了值,那么这里只有用变量a1,因此此空答案为a1。
   第(3)空是在创建了两个对象后执行的语句,根据程序不难推断出,这里应该要实现对象a1的数据输出,那么就要调用函数print(),因此此空答案为a1->print()。
   第(4)空所在的语句是在实现了构造函数与数据输出后执行的语句,从题目要求来分析,这里应该要调用对象的析构函数来输出“析构函数”这样一个结果,上面我们已经分析到了对象的析构函数一般在撤销对象时调用。从对象的执行过程来分析,在对象的所有处理完成后也应该撤销对象来释放所占的资源,那么此空的任务应该是用来撤销a1对象,在C++中一般用关键字delete,因此此空答案为delete。
   第(5)空和第(4)空的情况一样,因此此空答案为delete。
转载请注明原文地址:https://kaotiyun.com/show/xBjZ777K
0

最新回复(0)