单项选择题
(21)关于友元的概念错误的是
A)友元函数没有this指针
B)调用友元函数时必须在它的实参中给出要访问的对象
C)一个类的成员函数也可以作为另一个类的友元函数
D)只能在类的公有段声明友元
(22)关于抽象类下面说法正确的是
A)抽象类就是其中有函数定义但没有实现的类
B)抽象类是可以被实例化的
C)派生类不能成为抽象类
D)抽象类的子类必须实现父类中的纯虚函数
(23)下面程序的结果是
#include
class test { private:
int num;
public:
test();
int getint(){return num;}
~test();};
test :: test()
{ num =0;}
test::~test()
{ cout<<"Destructor is active" { test x[3]; cout<<"Exiting main" Destructor is active Destructor is active Destructor is active B)Exiting main Destructor is active Destructor is active来自www.Examw.com C)Exiting main Destructor is active D)Exiting main (24)如果表达式--x+y中,--是作为成员函数重载的, +是作为成员函数重载的,则该表达式还可为 A)y.operator+(x.operator--(0)) B)y.operator+(x.operator--()) C)y.operator+(operator--(x,0)) D)operator+(x.operator--()) (25)下列语句不能够用于打开C根目录下文件test.txt的语句是 A)ifstream fin; fin.open("C:\\test.txt"); B)ifstream fin("C:\\test.txt"); C)A)和B)来自www.Examw.com D)ifstream fin; fin("C:\\test.txt"); (21)D 解析: C++中的友元可以在一个类中的任何位置声明,不一定必须在公有段,友元没有自己的this指针,调用友元函数时必须在它的实参中给出要访问的对象,并且一个类的成员函数是可以作为另一个类的友元函数的。 (22)D 解析: C++语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。 (23)A 解析: C++语言中析构函数是在程序退出不用该类的对象时进行调用。 (24)B 解析: C++语言中用成员函数重载--x为:x. operator--(),用成员函数重载x+y为:x. operator+(y)。 (25)D 解析: C++语言中打开文件有两种方式① ifstream fin("test.dat")② ifstream fin;fin.open("test.dat");。