常对象、静态成员课后检测

一. 单选题(共3题,37.5分)

1. (单选题)

有如下类定义:

class Test{

public:

Test( ){a=0;c=0;} //①常成员必须在初始化列表中初始化

int f(int a) const {this->a=a;} //②常函数不能修改成员

void h(int b) {Test::b=b;}; //③

static int g( ) {return a;} //④静态函数要通过对象访问成员

private:

int a;

static int b;

const int c;

};

int Test::b=0;

在标注号码的行中,能被正确编译的是()。

  • A. ①
  • B. ②
  • C. ③
  • D. ④

正确答案: C

题解:1错于在构造函数中初始化常对象c;

2错于常函数不能修改成员a;

4错于静态函数无法访问非静态数据成员a

2. (单选题)下列对静态数据成员的描述正确的是(    )。

  • A.

    静态数据成员不可以被类的对象调用

  • B. 静态数据成员可以在类体内进行初始化

  • C. 静态数据成员不能受protected控制符的作用

  • D.

    静态数据成员可以直接用类名调用

正确答案: D

3. (单选题)定义静态成员函数的主要目的是( )

  • A. 方便调用
  • B. 有利于数据隐藏
  • C. 处理类的静态成员变量
  • D. 便于继承

正确答案: C

二. 填空题(共5题,62.5分)

4. (填空题)

如果想将类的一般成员函数说明为类的常成员函数,则应该使用关键字___________说明成员函数。

正确答案: const

5. (填空题)

被声明为const的数据成员只允许声明为___________的成员函数访问。

正确答案:const

6. (填空题)

将类中的数据成员声明为static的目的是使同类的(           )对数据实现共享。

正确答案:对象

答案解析:

7. (填空题)

类的静态数据成员的初始化工作要放在(       )对象。备注:答案只能写两个字

正确答案:类外

8. (填空题)

有如下类定义及类应用,试问,该程序输出为____
class CStudent
{
    int sno;
public:
    static int stuCount;
    CStudent(int sno):sno(sno) { stuCount++;}
    ~CStudent(){}
};
int CStudent::stuCount=0;
int main()
{
    CStudent stu1(1);
    CStudent *pstu=new CStudent(2);
    cout<<stu1.stuCount;
}

正确答案: 2

题解:静态成员所有对象共享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值