分享

面向对象C++第三次作业

 _bolo 2017-05-05
  1. 在下面程序中,ABCD四句编译时不会出现错误的是( A )

#include <iostream>

using namespace std;

class Base{

    public:

          Base(){}

          Base(int c):count(c){}

          virtual void print()=0;//纯虚函数,说明是抽象类,不能定义对象

    private:

          int count;

};

class Derived:public Base{

    public:

           Derived():Base(0){}

           Derived(int c):Base(c){}

           void print(){cout<<“Derived”<<endl;}

};

void main(){

      Derived d(10);

      Base *pb;

      pb=&d;                                        //A(只能将父类引用赋值给子类对象)

      Base &cb=d;                          

      Derived dd=*pb;                          //B

      Derived &cd=cb;                         //C

      Base bb=d;                                 //D

}

  1. 若有以下说明,对n的正确访问语句是( B )

      class Y{

           //……;

             public:static int n;

      };

       int Y::n;//作用域运算符是通过类来实现的    Y objY;

        A.n=1;       B. Y::n=1; C.objY::n=1;         D.Y->n

  1. 下列关于类的集成描述中,( D )是正确的。

A.派生类共偶遇继承基类时,可以访问基类的所有数据成员,调用所有成员函数。    

       B.派生类也是基类,所以它们是等价的。

       C.派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。

       D.一个基类可以有多个派生类,一个派生类可以有多个基类。

  1. 对于下面这段程序,错误的认识是( C )

class test{

           private: int f1;

           public: test(test &);

       };

       test::test(test& t){ f1=t.f1; }

       A.test(test&)是拷贝构造函数

       B.拷贝构造函数可以访问该类任何对象的私有成员

       C.test obj2(obj1);用对象obj2初始化具有徐昂同类型的对象obj1

       D.拷贝构造函数必须用它所在类的引用作为参数

  1. 一个最简单的C++程序,可以只有一个( C )
  1. 库函数       B.自定义函数      C.main函数    D.空函数

6.    C++语言编制的源程序要变为目标程序必须要经过( D )

        A.解释       B.汇编        C.编辑        D.编译

7.    C++程序中最简单语句必须以( B )结束

       A.冒号       B.分号        C.空格        D.花括号

8.    有说明int a=0;double x=5.16;以下语句中,( C )属于编译错误的。

        A.x=a/x;     B.x=x/a;      C.a=a%x;   D.x=x*a;  //取膜两边的数必须一致

9.    下面对友元函数的错误叙述是( D )

        A.关键字friend用于声明成员

        B.一个类中的成员函数可以是另一个类的友员

        C.友元函数访问对象的成员不受访问特性影响

        D.友元函数通过this指针访问对象成员  //不属于这个类,没有this指针

10.   下列关于运算符重载的描述中,( D )是正确的

        A.可以改变参与运算的操作数个数

        B.可以改变运算符原来的优先级

        C.可以改变运算符原来的结合性

        D.能改变原运算符的语义

11.   当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为( B )

        A.public 成员        B.private 成员        C.protected 成员       D.友元

12.   不论派生类以何种方式继承基类,都不能直接使用基类的( B )

        A.public 成员        B.private 成员        C.protected 成员       D.友元

13.   C++中,可以被派生类继承的函数是( A )

        A.成员函数           B.构造函数            C.析构函数               D.友元函数

14.   C++中,要实现动态联编,必须使用( D )调用虚函数

        A.类名                   B.派生类指针        C.对象名                   D.基类指针

15.   虚析构函数的作用是( C )

        A.虚基类必须定义虚析构函数         B.类对象作用域结束时释放资源

        C.delete动态对象时释放资源           D.无意义

16.   若一个类中含有纯虚函数,则该类称为( C )

        A.基类                    B.纯基类                C.抽象类                  D.派生类

17.   假设Aclass为抽象类,下列正确的说明语句是( B )

        A.Aclass fun( int ); B.Aclass *p;           C.int fun(Aclass );    D.Aclass Obj;  

                                     //抽象类只能定义指针*或引用&,为了保证运行时的多态性

18.   下面描述中,正确的是( D )

        A.虚函数是没有实现的函数    //纯虚函数

        B.纯虚函数是返回值等于0的函数  //没有返回值

        C.抽象类是只有纯虚函数的类

        D.抽象类指针可以指向不同的派生类

19.   下面对构造函数的不正确描述是( B )

        A.系统提供默认的构造函数

        B.构造函数可以有参数,所以也可以有返回值 //没有返回值

        C.构造函数可以重载

        D.构造函数可以设置默认参数

20.   关于类的静态成员的不正确描述是( D )

        A.静态数据成员不属于某个对象,是类的共享成员

        B.静态数据成员要在类外定义和初始化

         C.静态成员函数不拥有this指针,需要通过类参数访问对象成员

         D.只有静态成员函数可以操作静态数据成员 //间接访问非静态数据成员

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多