南开大学22秋学期《面向对象程序设计》在线作业一
奥鹏教育南开大学平时作业
22秋学期(高起本1709-1803、全层次1809-2103)《面向对象程序设计》在线作业-00001
对虚函数的调用()。
A:一定使用动态联编
B:一定使用静态联编
C:必须使用动态联编
D:不一定使用动态联编
正确答案获取微信:424329
下列虚基类的声明中正确的是( )。
A:class virtual B:public A
B:virtual class B:public
C:class B:public A virtual
D:class B: virtual public A
正确答案获取微信:424329
已知类X中的一个成员函数说明如下:
Void Set(X 其中,X
public:
void init(int initX,int initY);
private:
int Y;
public:
int GetX();
int GetY();
};
A:X
B:init(int initX,int initY)
C:GetX(),GetY()
D:B和C都是
正确答案获取微信:424329
在C++中,通过()的机制可以对原有的类进行扩充和完善以适应新的需要。
A:继承
B:封装
C:多态
D:重载
正确答案获取微信:424329
要求打开文件 d:file.dat,可写入数据,正确的语句是( )。
A:ifstream infile("d:file.dat", ios::in);
B:ifstream infile("d:\file.dat", ios::in);
C:ofstream infile("d:file.dat", ios::out);
D:fstream infile("d:\file.dat", ios::in| ios::out);
正确答案获取微信:424329
下列程序段中具有相同值的是( ) class Base {int b;}; class Base1:virtual public base{int b1;}; class Base2:virtual public base{int b2;}; class derived:public base 1,public base 2{int b3;}; derived d;
A:d.b与d.base1::b
B:d.base1::b与 d.base1::b1
C:d.b与 d. b3
D:d.base2::b与 d.base2::b2
正确答案获取微信:424329
当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( )。
A:public成员
B:private成员
C:protected成员
D:友元
正确答案获取微信:424329
假定X为一个类,执行X a[3],*p[2];语句时会自动调用该类的构造函数( )次。
A:2
B:3
C:4
D:5
正确答案获取微信:424329
下列关于构造函数调用顺序的描述中,正确的是()。
A:创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数
B:创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数
C:创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数
D:创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数
正确答案获取微信:424329
若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。
A:友元函数
B:虚函数
C:构造函数
D:析构函数
正确答案获取微信:424329
关于下面程序段说法正确的是( )
class X
{
private:
int n;
public:
X(X
};
X::X(X
A:宏定义
B:文件包含
C:条件编译
D:工程配置
正确答案获取微信:424329
下面叙述不正确的是( )。
A:基类的保护成员在派生类中仍然是保护的
B:基类的保护成员在公有派生类中仍然是保护的
C:基类的保护成员在私有派生类中是私有的
D:对基类成员的访问必须是无二义性
正确答案获取微信:424329
下面对友元的错误描述是( )。
A:关键字friend用于声明友元
B:一个类的成员函数可以是另一个类的友元
C:友元函数访问对象的成员不受访问特性影响
D:友元函数通过this指针访问对象成员
正确答案获取微信:424329
如果类A被说明成类B的友元,则()。
A:类A的成员函数不得访问类B的所有成员
B:类A的成员函数可以访问类B的所有成员
C:类A的成员即类B的成员
D:类B的成员即类A的成员
正确答案获取微信:424329
一个类的友元函数能够访问该类的( )。
A:私有成员
B:保护成员
C:公有成员
D:所有成员
正确答案获取微信:424329
下列关于拷贝构造函数的描述中,错误的是()。
A:一个类可以定义多个拷贝构造函数
B:若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数
C:当类中有指针成员变量时,通常要为这个类定义一个拷贝奥鹏教育南开大学平时作业构造函数来实现深拷贝
D:拷贝构造函数中的参数按引用方式传递
正确答案获取微信:424329
下列关于运算符重载的描述中,()是正确的。
A:运算符重载可以改变操作数的个数
B:运算符重载可以改变优先级
C:运算符重载可以改变结合性
D:运算符重载不可以改变语法结构
正确答案获取微信:424329
下列( )是构造函数的特征。
A:构造函数在创建对象时自动调用
B:构造函数不可以重载
C:构造函数不可以设置默认参数
D:构造函数必须指定函数类型
正确答案获取微信:424329
执行语句“string str("abc");”时,系统会自动调用string类的构造函数()。
A:operator(obj1,obj2)
B:(obj1,obj2)
C:obj1.operator(obj2)
D:obj2.operator(obj1)
正确答案获取微信:424329
已知“float *p; p=new float[2];”,若要释放p所指向的堆中的这些字节,下列语句正确的是()。
A:delete p;
B:delete p[];
C:delete []p;
D:delete p[2];
正确答案获取微信:424329
建立类模板对象的实例化过程为( )。
A:基类->派生类
B:构造函数->对象
C:模板类->对象
D:模板类->模板函数
正确答案获取微信:424329
撤消对象时,系统自动调用( )函数。
A:成员函数
B:构造函数
C:析构函数
D:普通函数
正确答案获取微信:424329
下列关于赋值运算符重载的说法中正确的是()。
A:返回值一般是以引用方式返回的对象,而函数体中总是用语句“return *this;”返回this指针所指向的对象
B:赋值运算符只能以非成员函数的方式重载
C:赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载
D:以上均不正确
正确答案获取微信:424329
关于动态关联的下列叙述中,()是错误的。
A:动态关联是以虚函数为基础的
B:动态关联调用虚函数操作是指向对象的指针或引用
C:动态关联是在运行时确定所调用的函数代码的
D:动态关联是在编译时确定操作函数的
正确答案获取微信:424329
定义重载函数时,应保证函数类型有所不同。
A:对
B:错
正确答案获取微信:424329
运算符[]只能用成员运算符来重载,不能用友元运算符来重载。
A:对
B:错
正确答案获取微信:424329
纯虚函数是一种特殊的成员函数,它是一种没有具体实现的虚函数。
A:对
B:错
正确答案获取微信:424329
已知Circle类对象c,Circle类中有一个setCenter成员函数,如果c.setCenter(…)返回值仍然是c,则setCenter函数中的return语句应写作return this;。
A:对
B:错
正确答案获取微信:424329
当一个函数的返回值是类对象时,则该函数执行结束后会自动调用拷贝构造函数初始化一个临时对象。
A:对
B:错
正确答案获取微信:424329
在类内部定义的public数据可以在类外进行存取。
A:对
B:错
正确答案获取微信:424329
定义虚函数所用的关键字是virtual。
A:对
B:错
正确答案获取微信:424329
重载函数可以带默认参数值,但要注意二义性。
A:对
B:错
正确答案获取微信:424329
某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。
A:对
B:错
正确答案获取微信:424329
构造函数说明为纯虚函数是没有意义的。
A:对
B:错
正确答案获取微信:424329
函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。
A:对
B:错
正确答案获取微信:424329
只有返回引用的函数可以作为赋值语句的左值。
A:对
B:错
正确答案获取微信:424329
打开ASCII码流文件和二进制流文件时,打开方式是相同的。
A:对
B:错
正确答案获取微信:424329
运算符重载实际上是对已有的运算符重新定义其功能。
A:对
B:错
正确答案获取微信:424329
类的静态成员函数中不能访问非静态成员。
A:对
B:错
正确答案获取微信:424329