class Item_base{
public:
Item_base(const string &book = "", int p = 0):price(p), isbn(book){}
virtual ~Item_base(){}
virtual int net_price(int n) const{
return n * price;
}
string book() const { return isbn; }
protected:
int price;
private:
string isbn;
};
类中的构造函数为什么要用book来做参数及其原理?
主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
任何时候,只要创建类或结构,就会调用它的构造函数。类或结构可能有多个接受不同参数的构造函数。构造函数使得程序员可设置默认值、限制实例化以及编写灵活且便于阅读的代码。
你这带参构造函数就可以做到初始化成员变量。
呃,代码中,book是一个函数,我想了解的是为什么要用函数的引用来初始化,而且这样的用法有什么有含义跟好处?
@wtu_sos:
Item_base(const string &book = "", int p = 0):price(p), isbn(book){}这语句的book是函数?
这里的book被初始化为一个空的字符串哟。
@wongdavid: string book() const { return isbn; }
@wongdavid: 谢谢,是我理解错了。你是对的