【说明】 在下面函数横线处填上适当的字句,使其输出结果为: 构造函数. 构造函数. 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。