有如下类定义:class Bag {public:Bag(int p,char s='M'):price(p),size(s) { count++; }~Bag() { count--; }int GetPrice() { return price; }int GetPrice() const { return price; }void SetPrice(int val) const { price=val; }private:int price;char size;static int count;};

题目

有如下类定义:

class Bag {

public:

Bag(int p,char s='M'):price(p),size(s) { count++; }

~Bag() { count--; }

int GetPrice() { return price; }

int GetPrice() const { return price; }

void SetPrice(int val) const { price=val; }

private:

int price;

char size;

static int count;

};

下列关于类成员的叙述中,正确的是( )。

A. 成员函数GetPrice存在重定义

B.构造函数的参数不能设置默认值

C.析构函数中不能访问静态数据成员

D.成员函数SetPrice不能定义为常函数


相似考题
更多“有如下类定义:class Bag {public:Bag(int p,char s='M'):price(p),size(s) { count++ ”相关问题
  • 第1题:

    请选出正确的程序段

    A.int*p; scanf("%d",p); …

    B.int *s,k; *s=100; …

    C.int *s,k; char *p,c; s=&k; p=&c; *p='a'; …

    D.int *s,k; char *p,e; s=&k; p=&c; s=p; *s=1; …


    正确答案:C
    解析: 本题的选项A)和B)犯了同样的错误,即指针变量在定义后并没有指向具体的变量。也就是说,指针变量中没有确定的地址值,它的值是不可预见的,所指的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

  • 第2题:

    请选出正确的程序段

    A.int *p; scanf("%d",p); …

    B.int *s,k; *s=100; …

    C.int *s,k; char *p,c; s=&k; p=&c; *p='a'; …

    D.int *s,k; char *p,e; s=&k; p=&c; s=p; *s=1; …


    正确答案:C
    解析:本题的选项A)和B)犯了同样的错误,即指针变量在定义后并没有指向具体的变量。也就是说,指针变量中没有确定的地址值,它的值是不可预见的,所指的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是血型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。

  • 第3题:

    下列程序段没有错误的是( )。

    A.int*p;cin>>*p;

    B.int*s,k;*s=100

    C.int *s ,k; char *p ,c; s=&k; p=&c; *p='a'; *s=1;

    D.int *s,k; char *p,c; s=&k; p=&c; s=p;


    正确答案:C
    解析:指针变量一定要让它指向某个内存单元才能给它赋值、参加运算等,选项A和选项B都是因为没有先让指针指向某个内存单元;选项D把不同数据类型的指针变量相互赋值是错误的。

  • 第4题:

    以下正确的程序段是______。

    A.int*p; scanf("%d",p);

    B.int *s,k *s=100;

    C.int*s,k; char*p,c; s=&k; p=&c; *p='a';

    D.int*s,k; char*p,c; s=&k; p=&c; s=p; *s=1;


    正确答案:C

  • 第5题:

    请选出正确的程序段

    A.int *p; scanf("%d",p); …

    B.int *s, k; *s=100; …

    C.int *s, k; char *p, c; s=&k; p=&c; *p=′a′; …

    D.int *s, k; char *p, e; s=&k; p=&c; s=p; *s=1; …


    正确答案:C
    解析:本题的选项A)和B)犯了同样的错误,即指针变量在定义后并没有指向具体的变量。也就是说,指针变量中没有确定的地址值,它的值是不可预见的,所指的单元也是不可预见的,因此不能进行赋值操作。另外,在选项D)中,s是int型指针变量,p是char型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字符指针变量p的值赋给整型指针变量s。