c+练习题

1. 识认性 encapsulation、多态性polymorphic 继承性inherited OOP语言特点

 

2. Assume that AB is a class, the declaration of copy constructor of that class should be (      )

AAB&(AB x) (B)AB(AB x) (C)AB(AB &x) (D)AB(AB *x)

当用已存在的对象创建新对象时候,编译器会自动调用拷贝构造函数完成新对象的初始化操作。
假设该代码是成立,在值传递时候,传参期间会产生一个临时变量,当我们实例化对象d1后,将d1拷贝给d2时调用拷贝构造函数,此时d1发生值传递,d1将值传递给临时对象dd1,而此时又要调用拷贝构造函数将d1的值传递给dd1,因为是值传递,一旦调用又要产生临时变量ddd1,将d1的值传递给临时变量ddd1,那么问题就很明显了,值传递,会进行形参实例化,类类型实例化,会再调用构造函数,就会一直调用,因此结果就是无穷递归

3 For the member of a structure, the default access modifier is (     )。 

   (A) public;    (B) private;    (C) protected;     (D) static;       class-> private

 

4. Assume AB is a class, to execute statement “AB a(4),b[3],*p[2];”, how many times to invoke the constructor?(         )

(A)  3 (B) 4 (C) 6 (D) 9                 a(4)调用自定义构造函数一次   b调用无参数构造函数3次      p不调用

 

5 函数的默认返回值是undefined 而构造函数没有返回值

 

6. Parameterized stream manipulator setfill specifies the fill character that is displayed when an output is displayed in a field wider than the number of characters or digits in the output. The effect of setfill applies:

(A) Only to the current value being displayed.

(B) Only to outputs displayed in the current statement.

(C) Until explicitly set to a different setting.

(D) Until the output buffer is flushed.   然而  一起使用的setw只对 下次一输出的值<<a<<b也仅对a有作用

 

Treating a bass-class object as a derived-class object can cause errors.               true

 

Operator dynamic-cast can be used to downcast base-class pointers safely      true

 

多态分为运行时多态与编译时多态    其中 if switch 虚函数 都是运行时多态  函数重载属于编译时多态

 

 

9. 一个类模板定义了静态数据成员,则(  A  )。

 

A.每一个实例化的模板类都有一个自己的静态数据成员。

 

B.每一个实例化的对象都有一个自己的静态数据成员。

 

C.它的类型必须是类模板定义的抽象类型。

 

D.所有模板类的对象公享一个静态数据成员。

 

10 每一次形参都会调用一个复制构造函数来传递对象并析构函数,所以参数应当是引用 但你可以自己写复制构造函数

posted @ 2021-06-20 10:56  旅玖旅玖  阅读(121)  评论(0编辑  收藏  举报