17、一个类的友元函数能够通过成员操作符访问该类的______。
A、私有成员
B、保护成员
C、公有成员
D、公有成员、保护成员、私有成员
本题考查友元函数的概念。
友元函数不是当前类的成员函数,而是独立于当前类的外部函数,但是它可以访问该类的所有对象成员,包括公有成员、保护成员、私有成员。
故本题选D。
18、下面类定义中错误的语句是______。
class Sample
{
public:
Sample(int val);
~Sample(int val);
private:
int a;
Sample();
}
A、Sample(int val);
B、~Sample(int val);
C、int a;
D、Sample();
本题考查类的定义。
对于类定义,其中的析构函数不可以带有参数。
所以本题选B。
19、每个C++程序必须有且仅有一个______。
A、函数
B、预处理指令
C、主函数
D、语句
本题考查c++的基本概念。
每一个c++程序必须有而且只能有一个主函数,每个程序的执行都是从主函数的开始的。
故本题选C。
20、类的默认的无参构造函数______。
A、仅当未定义无参构造函数时存在
B、在任何情况下都存在
C、仅当未显式定义任何构造函数时存在
D、仅当未定义有参构造函数时存在
本题考查构造函数的概念。
默认无参构造函数只有当没有显式定义任何构造函数时才存在。
故本题选C。
21、关于this指针的说法不正确的是______。
A、它是成员函数所属对象的指针
B、它是一种隐含指针,存在于每个类的非静态成员函数中
C、可以通过this.成员变量的形式访问类中的数据成员
D、成员函数访问类中数据成员的格式可写成:this->成员变量
本题考查this指针的概念。
this指针是成员函数所属对象的指针,它指向当前类对象的地址。this指针是一个隐含指针,它隐含于每个类的非静态成员函数中。通过this指针访问当前对象成员有两种方式:(*this).成员,this->成员。
故本题选C。