南开大学23年秋学期《面向对象程序设计》在线作业一
奥鹏南开大学23年秋季新学期作业参考
23秋学期(仅限-高起专1909、专升本1909)《面向对象程序设计》在线作业-00001
下面关于友元的描述中,错误的是( )。
A:友元函数可以访问该类的私有数据成员
B:一个类的友元类中的成员函数都是这个类的友元函数
C:友元可以提高程序的运行效率
D:类与类之间的友元关系可以继承
正确答案问询微信:424329
实现运行时的多态性要使用()。
A:构造函数
B:析构函数
C:重载函数
D:虚函数
正确答案问询微信:424329
下面( )的叙述不符合赋值兼容规则。
A:派生类的对象可以赋值给基类的对象
B:基类的对象可以赋值给派生类的对象
C:派生类的对象可以初始化基类的对象
D:派生类的对象的地址可以赋值给指向基类的指针
正确答案问询微信:424329
下列对重载函数的描述中,( )是错误的。
A:重载函数中不允许使用默认参数
B:重载函数中编译时根据参数表进行选择
C:不要使用重载函数来描述毫无相干的函数
D:构造函数重载将会给初始化带来多种方式
正确答案问询微信:424329
( )只能访问静态成员变量,不能访问非静态成员变量。
A:静态函数
B:虚函数
C:构造函数
D:析构函数
正确答案问询微信:424329
以下为重载函数的一组函数声明的是()。
A:void print(int); void print(double);
B:void fun(int); int fun(int);
C:int max(int,int); int min(int,int);
D:void mm(); int mm();
正确答案问询微信:424329
已知X类,则当程序执行到语句 X array[3]; 时,调用了( )次构造函数。
A:0
B:1
C:2
D:3
正确答案问询微信:424329
一个( )允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值可以取任意数据类型。
A:函数模板
B:模板函数
C:类模板
D:模板类
正确答案问询微信:424329
下面对析构函数的正确描述是( )。
A:系统不能提供默认的析构函数
B:析构函数必须由用户定义
C:析构函数没有参数
D:析构函数可以设置默认参数
正确答案问询微信:424329
下列关于主函数的叙述中正确的是()。
A:一个程序可以有多个主函数
B:程序从主函数开始执行
C:一个程序可以没有主函数
D:主函数是一个特殊的函数,因此其结构与其他函数不同
正确答案问询微信:424329
将一个函数声明为某类的友元函数后,则在函数中不可以直接访问该类的()。
A:公有成员
B:私有成员
C:保护成员
D:都可访问
正确答案问询微信:424329
下面描述中,错误的是( )。
A:在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
B:在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C:在基类定义的public和protected成员在保护继承的派生类中可见
D:在派生类中不可见的成员要变成可访问的,需要进行访问声明
正确答案问询微信:424329
若一个类中含有纯虚函数,则该类称为( )。
A:基类
B:纯基类
C:派生类
D:抽象类
正确答案问询微信:424329
面向对象程序设计思想的主要特征中不包括( )。
A:封装性
B:多态性
C:继承性
D:功能分解,逐步求精
正确答案问询微信:424329
下面程序段中,说法正确的是( )
class location{ public : int GetX(); };
class rectangle:private location { public: int GetW(); };
A:类rectangle的私有派生类是location
B:类rectangle中的public成员在类 location中是私有的
C:类location中的public成员在类 rectangle中是不可访问的
D:viod f( ) { Rectangle r; int X=r .GetX( ); } 其中int X = r .GetX( );是非法语句
正确答案问询微信:424329
this指针是C++实现( )的一种机制。
A:抽象
B:封装
C:继承
D:重载
正确答案问询微信:424329
对A、B两个类进行多重继承得到派生类C,则创建派生类C的对象时,从基类B中继承过来的成员变量由()类的构造函数进行初始化。
A:A
B:B
C:C
D:都可以
正确答案问询微信:424329
下面说法中正确的是( )。
A:一个类只能定义一个构造函数,但可以定义多个析构函数
B:一个类只能定义一个析构函数,但可以定义多个构造函数
C:构造函数与析构函数同名,只要名字前加了一个求反符号(~)
D:构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以
正确答案问询微信:424329
下面对构造函数的不正确描述是( )。
A:系统可以提供默认的构造函数
B:构造函数可以有参数,所以可以有返回值
C:构造函数可以重载
D:构造函数可以设置默认参数
正确答案问询微信:424329
通常拷贝构造函数的参数表是( )。
A:某个对象名
B:某奥鹏南开大学23年秋季新学期作业参考个对象的成员名
C:某个对象的引用名
D:某个对象的指针名
正确答案问询微信:424329
下面描述中,错误的是( )。
A:虚函数是没有实现的函数
B:纯虚函数的实现在派生类中
C:抽象类是有纯虚函数的类
D:抽象类指针可以指向不同的派生类
正确答案问询微信:424329
使用string类,必须在程序中包含头文件()。
A:string.h
B:string
C:cstring.h
D:cstring
正确答案问询微信:424329
类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()将( )。
A:调用类A中是函数func()
B:调用类B中是函数func()
C:根据P所指的对象类型而确定调用A中或类B中的函数func()
D:既调用类A中函数,也调用类B中的函数
正确答案问询微信:424329
若析构函数是虚函数,则delete对析构函数的调用采用( )。
A:静态联编
B:动态联编
C:重载函数
D:多重函数
正确答案问询微信:424329
下列关于赋值运算符重载的说法中正确的是()。
A:返回值一般是以引用方式返回的对象,而函数体中总是用语句“return *this;”返回this指针所指向的对象
B:赋值运算符只能以非成员函数的方式重载
C:赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载
D:以上均不正确
正确答案问询微信:424329
下列关于类的继承描述中,( )是错误的。
A:派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B:派生类也是基类,但基类不一定具有派生类的全部属性和方法
C:继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D:一个基类可以有多个派生类,一个派生类可以有多个基类
正确答案问询微信:424329
多态调用是指( )。
A:以任何方式调用一个虚函数
B:以任何方式调用一个纯虚函数
C:借助于指向对象的基类指针或引用调用一个虚函数
D:借助于指向对象的基类指针或引用调用一个纯虚函数
正确答案问询微信:424329
下面选项中,不是类的成员函数为( )。
A:构造函数
B:析构函数
C:友元函数
D:缺省参数的构造函数
正确答案问询微信:424329
关于纯虚函数和抽象类的描述中,错误的是()。
A:纯虚函数是一种特殊的虚函数,它没有具体的实现。
B:抽象类是指具有纯虚函数的类。
C:一个基类中有纯虚函数,该类的派生类一定不再是抽象类。
D:抽象类作为基类来使用,其纯虚函数的实现由派生类给出。
正确答案问询微信:424329
任意一个类,析构函数的个数最多是()。
A:不限个数
B:1
C:2
D:3
正确答案问询微信:424329
友元访问类对象的成员时使用( )。
A:类的成员名
B:“this->成员名”的形式
C:“类名::成员名”的形式
D:“对象名.成员名”的形式
正确答案问询微信:424329
下面对模板的声明,正确的是( )。
A:A.template
B:template
C:template
D:template
正确答案问询微信:424329
对于任意一个类,析构函数的个数最多为( )。
A:0
B:1
C:2
D:3
正确答案问询微信:424329
单目运算符作为类成员函数重载时()。
A:有形参
B:没有形参
C:有实参
D:以上都不正确
正确答案问询微信:424329
下面叙述不正确的是( )。
A:基类的保护成员在派生类中仍然是保护的
B:基类的保护成员在公有派生类中仍然是保护的
C:基类的保护成员在私有派生类中是私有的
D:对基类成员的访问必须是无二义性
正确答案问询微信:424329
纯虚函数是一种特殊的成员函数,它是一种没有具体实现的虚函数。
A:对
B:错
正确答案问询微信:424329
类A有如下成员函数:
int A::fun(double x){return (int) x/2;}
int A::fun(int x){return x*2;}
设a为类A的对象,在主函数中执行语句int s=a.fun(6)+a.fun(2.0)后的s值为13。
A:对
B:错
正确答案问询微信:424329
类非成员函数形式的运算符重载函数通常采用友元函数,是为了在运算符重载中方便访问类中的非公有成员。
A:对
B:错
正确答案问询微信:424329
对象数组的元素可以是不同类的对象。
A:对
B:错
正确答案问询微信:424329
对一个类中的数据成员的初始化,可以通过构造函数来实现。
A:对
B:错
正确答案问询微信:424329
抽象类不能定义对象,但可以声明抽象类的指针或引用。
A:错误
B:正确
正确答案问询微信:424329
遇到一个问题后,应先分析问题、设计算法,然后再编写程序。
A:对
B:错
正确答案问询微信:424329
能访问一个类CMyClass中的private成员的可以是类CMyClass的成员函数、友元函数和友元类中的函数。
A:对
B:错
正确答案问询微信:424329
一个类的构造函数中可以不包含对其子对象的初始化。
A:对
B:错
正确答案问询微信:424329
具有纯虚函数的类是抽象类,它的特点是不可以定义对象。
A:对
B:错
正确答案问询微信:424329
cin是输出流的一个对象,处理标准输出。
A:对
B:错
正确答案问询微信:424329
以友元方式重载运算符时,形参列表中至少有一个参数必须是自定义数据类型。
A:错误
B:正确
正确答案问询微信:424329
类模板可以生成若干个模板类,每个模板类又可定义若干个对象。
A:对
B:错
正确答案问询微信:424329
派生类至少有一个基类。
A:错误
B:正确
正确答案问询微信:424329
在删除一个动态对象时,将自动调用该动态对象所属类的析构函数。
A:对
B:错
正确答案问询微信:424329