单选题
有如下类定义:
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;
};
下列关于类成员的叙述中,正确的是______。
【正确答案】
D
【答案解析】[解析] 重定义是指派生类的函数屏蔽与其同名的基类函数,成员函数重载是指在同一个类中函数名字相同而参数列表不同,两个成员函数GetPrice由于const的修饰,使得它们为重载函数,此处不存在重定义,选项A错误;构造函数的参数可以设置为默认值,选项B错误;析构函数可以访问静态数据成员,选项C错误;成员函数SetPrice会修改成员变量price的值,所以不能定义为常函数,选项D正确,答案为D选项。