有如下类定义: class Bag{ public: Bag(int p,char s=’M’):price(P),size(s){count++;} ~Bag(){count~;} int GetPrice(){r

admin2020-05-14  9

问题 有如下类定义:
    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、成员函数SetPriee不能定义为常函数

答案D

解析 重定义是指派生类的函数屏蔽与其同名的基类函数,成员函数重载是指在同一个类中函数名字相同而参数列表不同,两个成员函数GetPrice由于const的修饰,使得它们为重载函数,此处不存在重定义,选项A错误;构造函数的参数可以设置为默认值,选项B错误;析构函数可以访问静态数据成员,选项C错误;成员函数SetPrice会修改成员变量price的值,所以不能定义为常函数,选项D正确,答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/7q8p777K
0

最新回复(0)