C++错题笔记(选择题)
-
在声明语句int *fun();时,fun表示()。
A.
一个用于指向函数的指针变量
B.
一个返回值为指针型的函数名
C.
一个用于指向一维数组的行指针
D.
一个用于指向int型数据的指针变量
B
A int(*p)()
C int(*p)[n]
D int* p
-
在下面有关静态成员函数的描述中,正确的是()。
A.
在建立对象前,就可以为静态数据成员赋值
B.
静态成员函数在类外定义时要用static前缀
C.
静态成员函数只能在类外定义
D.
在静态成员函数中可以使用this指针
静态成员函数可以在类外定义,也可以在类内定义,且在类外定义不需要再加static前缀;
而静态数据成员只能在类外进行初始化;
静态成员函数不属于任何对象,它属于类,所以没有this 指针;
静态数据成员是在程序开始运行时被分配空间的,到程序结束时才释放空间,所以可以在建立对象前就可以为静态数据成员赋值。
-
若类A被说明成类B的友元,则( ) 。
A.
类A的成员即类B的成员
B.
类B的成员即类A的成员
C.
类A的成员函数不能访问类B的成员
D.
类B不一定是类A的友元
A
友元函数在访问对象成员时不使用成员运算符"."
成员函数定义时使用作用域运算符"::"
友元函数必须定义在类外 -
下面关于友元的描述中,错误的是:
A.
友元函数可以访问该类的私有数据成员
B.
一个类的友元类中的成员函数都是这个类的友元函数
C.
友元可以提高程序的运行效率
D.
类与类之间的友元关系可以继承
友元函数是成员函数,它被说明在类体内是错误的。因为友元函数不是成员函数,但要在类中声明。友元不是成员函数,但是它可以访问类中的私有成员。
友元函数是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。
友元关系不具对称性。即 A 是 B 的友元,但 B 不一定是 A 的友元。 友元关系不具传递性。即 B 是 A 的友元,C 是 B 的友元,但是 C 不一定是 A 的友元。
友元关系不能被继承。
友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。
友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明
-
下面不是C++中整型常量的是()。
A.
0
B.
08
C.
02
D.
0XAF
0打头的是8进制 0182显然不是8进制 所以选B
-
假设A 是一个类的名字,下面哪段程序不会调用A的复制构造函数?
A.
A a1,a2; a1 = a2;
B.
void func( A a) { cout << "good" << endl; }
C.
A func( ) { A tmp; return tmp; }
D.
A a1; A a2(a1);
A