C++错题笔记(选择题)

  1. 在声明语句int *fun();时,fun表示()。

    A.

    一个用于指向函数的指针变量

    B.

    一个返回值为指针型的函数名

    C.

    一个用于指向一维数组的行指针

    D.

    一个用于指向int型数据的指针变量

    B

    A int(*p)()

    C int(*p)[n]

    D int* p

  2. 在下面有关静态成员函数的描述中,正确的是()。

    A.

    在建立对象前,就可以为静态数据成员赋值

    B.

    静态成员函数在类外定义时要用static前缀

    C.

    静态成员函数只能在类外定义

    D.

    在静态成员函数中可以使用this指针

静态成员函数可以在类外定义,也可以在类内定义,且在类外定义不需要再加static前缀;
而静态数据成员只能在类外进行初始化;
静态成员函数不属于任何对象,它属于类,所以没有this 指针;
静态数据成员是在程序开始运行时被分配空间的,到程序结束时才释放空间,所以可以在建立对象前就可以为静态数据成员赋值。

  1. 若类A被说明成类B的友元,则( ) 。

    A.

    类A的成员即类B的成员

    B.

    类B的成员即类A的成员

    C.

    类A的成员函数不能访问类B的成员

    D.

    类B不一定是类A的友元

    A

    友元函数在访问对象成员时不使用成员运算符"."
    成员函数定义时使用作用域运算符"::"
    友元函数必须定义在类外

  2. 下面关于友元的描述中,错误的是:

    A.

    友元函数可以访问该类的私有数据成员

    B.

    一个类的友元类中的成员函数都是这个类的友元函数

    C.

    友元可以提高程序的运行效率

    D.

    类与类之间的友元关系可以继承

    友元函数是成员函数,它被说明在类体内是错误的。因为友元函数不是成员函数,但要在类中声明。友元不是成员函数,但是它可以访问类中的私有成员。

    友元函数是能够访问类中的私有成员的非成员函数。友元函数从语法上看,它与普通函数一样,即在定义上和调用上与普通函数一样。

    友元关系不具对称性。即 A 是 B 的友元,但 B 不一定是 A 的友元。 友元关系不具传递性。即 B 是 A 的友元,C 是 B 的友元,但是 C 不一定是 A 的友元。

    友元关系不能被继承。

    友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。

    友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明

  3. 下面不是C++中整型常量的是()。

    A.

    0

    B.

    08

    C.

    02

    D.

    0XAF

0打头的是8进制 0182显然不是8进制 所以选B

  1. 假设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

posted @ 2023-02-28 20:30  Travelever  阅读(166)  评论(0)    收藏  举报