类与对象
1.概念填空题
1.1  类定义的关键字是 class 。类的数据成员通常指定为 私有    成员。类的函数成员通常指定为 公有  成员,指定为 公有 的类成员可以在类对象所在域中的任何位置访问它们,类的 私有和保护 只能被该类的成员函数或友元函数访问。
1.2类的访问限定符包括 public private protected 。类成员默认的访问方式是 private 。访问限定符在类中 先后次序,各限定符 允许 (允许/不允许)多次出现。
1.3 面向对象程序设计有四个主要特点,即抽象、封装、 继承    多态  
1.4 构造函数的任务是 建立对象 。类中可以有 个构造函数,它们由 参数  区分。如果类说明中没有给出构造函数,则C++编译器会提供构造函数,该函数 不完成 (完成/不完成)对象初始化工作。
1.5复制构造函数的参数是 对象的复制 ,当程序没有给出复制构造函数时,编译系统会提供 默认复制构造函数 ,完成类对象的 复制 。复制构造函数被调用情况有  3  种。
1.6析构函数在对象 释放  时被自动调用。类中没有定义析构函数时,编译系统会提供一个默认的析构函数。该函数 不完成  (完成/不完成)具体对象的清理工作。
3.选择题
3.1 数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( B )。
A.类            B.对象                C.函数体          D.数据块
3.2 类的实例化是指( B )。
A.定义类        B.创建类的对象        C.指明具体类        D.调用类的成员
3.3下列说法中正确的是( B )。
A.类定义中只能说明函数成员的函数头,不能定义函数体
      B.类中的函数成员可以在类体中定义,也可以在类体之外定义
      C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中
      D.在类体之外定义的函数成员不能操作该类的私有数据成员
3.4有如下类定义:
class sample {
    int n;
    public:
    sample (int i=0):n(i){ }
    void setValue(int n0);
};
下列关于setValue成员函数的实现中,正确的是( B )。
A.sample::setValue(int n0){n=n0;}
B.void sample::setValue(int n0){n=n0;}
C.void setValue(int n0){n=n0;}
D.setValue(int n0){n=n0;}
3.5在下面的类定义中,错误的语句是( C )。
class sample{
  public:
    sample(int val);        //①
    ~sample( );          //②
  private:
    int a=2.5;            //③
  public:
    sample( );            //④
};
    A.①        B.②        C.③        D.④
3.6类的构造函数被自动调用执行的情况是在创建该类的(C)。
      A.成员函数时                  B.数据成员时
      C.对象时                      D.友元函数时
3.7(A)是析构函数的特征。
      A.一个类中只能定义一个析构函数
      B.析构函数名与类名不同
      C.析构函数的定义只能在类体内
      D.析构函数可以有一个或多个参数
3.8 在下列函数原型中,可以作为类AA构造函数的是( D )。
      A.void AA(int);              B.int AA( );
      C.AA(int) const;              D.AA(int)
3.9关于成员函数特征的下述描述中,(A)是错误的。
      A.成员函数一定是内联函数
      B.成员函数可以重载
      C.成员函数可以设置参数的默认值
      D.成员函数可以是静态的
4写出程序程序执行结果。
4.1#include<iostream>
using namespace std;
class Test {
public:
    Test( )    { n+=2; }
    ~Test( )    { n-=3;}
    static int getNum( ) { return n;}
private:
    static int n;
};
int Test::n=1;
int main( ){
    Test* p = new Test;
    delete p;
    cout<<n=<<Test::getNum( )<<endl;
    return 0;
}
    n=0
4.2#include<iostream>
using namespace std;
class AA{
    int n;
public:
    AA(int k):n(k){}
    int get( ) {return n;}
    int get( ) const{ return n+1;}
};
int main( ){
    AA a(5);
    const AA b(6);
    cout<&()<<,实例化类和实例化对象<&();
    return 0;
}
    5    7

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。