1.下列关于构造函数的描述中,错误的是( )。
编号 |
选项 |
A |
定义构造函数的目的主要是为了在创建对象时初始化对象的数据成员 |
B |
每个类可以定义多个构造函数,以实现不同的初始化方法 |
C |
构造函数应定义为类的私有成员 |
D |
构造函数在创建对象时被自动调用。每创建一个对象,构造函数即被调用一次 |
2.下列类ABC中所定义的构造函数,错误的是( )。
编号 |
选项 |
A |
class ABC { private: int x, y; public: ABC(int a = 0, int b = 0); }; ABC::ABC(int a, int b) { x = a; y = b; }
|
B |
class ABC { private: int x, y; public: ABC( ) { x = 0; y = 0; } ABC(int a, int b); }; ABC::ABC(int a, int b) { x = a; y = b; }
|
C |
class ABC { private: int x, y; public: ABC( ) { x = 0; y = 0; } ABC(int a, int b) { x = a; y = b; } };
|
D |
class ABC { private: int x = 0, y = 0; public: void Abc(int a, int b) { x = a; y = b; } };
|
3.类ABC的默认构造函数是( )。
编号 |
选项 |
A |
void ABC( ) { } |
B |
ABC( ) { } |
C |
Abc( ) { } |
D |
ABC( ) { x = 0; y = 0; } |
4.已定义类ABC:
class ABC
{
private: int x, y;
public:
ABC( ) { x = 0; y = 0; }
ABC(int a, int b) { x = a; y = b; }
};
执行定义对象语句:ABC obj; 则自动调用哪个构造函数?( )
编号 |
选项 |
A |
依次调用这2个构造函数 |
B |
ABC( ) |
C |
ABC(int a, int b) |
D |
不调用任何构造函数 |
5.已定义类ABC:
class ABC
{
private: int x, y;
public:
ABC(int a, int b) { x = a; y = b; }
};
则下列定义对象语句中,错误的是( )。
编号 |
选项 |
A |
ABC obj(5, 10); |
B |
ABC *pobj = new ABC(5, 10); |
C |
ABC obj(5, 5+5); |
D |
ABC obj; |
6.下列关于析构函数的描述中,错误的是( )。
编号 |
选项 |
A |
每个类可以定义多个析构函数,以实现不同的清理方法 |
B |
定义析构函数的目的是为了在销毁对象时清理对象的数据成员或其它一些善后工作 |
C |
通常,析构函数应定义为类的公有成员 |
D |
析构函数在销毁对象时被自动调用。每销毁一个对象,析构函数即被调用一次 |
7.下列关于拷贝构造函数的描述中,错误的是( )。
编号 |
选项 |
A |
每创建一个对象,拷贝构造函数即被调用一次 |
B |
一个类如果未定义拷贝构造函数,C++将自动为该类添加一个默认拷贝构造函数 |
C |
拷贝构造函数与其它构造函数构成重载函数 |
D |
定义拷贝构造函数的目的主要是为了用一个已有的对象来初始化新创建的对象 |
8.已定义类ABC:
class ABC
{
private: int x, y;
public:
ABC( ) { x = 0; y = 0; }
ABC(int a, int b) { x = a; y = b; }
ABC(ABC &a) { x = a.x; y = a.y; }
};
执行定义对象语句:ABC obj1, obj2(obj1); 则将会自动调用哪个构造函数?( )
编号 |
选项 |
A |
依次调用ABC( )和ABC(int a, int b) |
B |
ABC(ABC &a) |
C |
依次调用ABC( )和ABC(ABC&a) |
D |
ABC( ) |
9.下列关于对象的描述中,错误的是( )。
编号 |
选项 |
A |
类可认为是一种数据类型,用类所定义的变量称为对象,也可称为是类的实例 |
B |
可以访问对象中公有数据成员的内存单元 |
C |
可以调用对象中的所有函数成员 |
D |
执行对象定义语句时,计算机将为程序中的对象分配内存空间 |
10.调用对象obj函数成员fun:obj.fun( ); 编译器在编译时会将其调整为( )。
编号 |
选项 |
A |
obj->fun( &obj ); |
B |
obj->fun( ); |
C |
fun( &obj ); |
D |
fun( obj ); |