一个类的定义如下:
class Widget {
double wgt;
public:
Widget(double w) : wgt(w) {assert(w>=0);}
double weight() const { return wgt;}
double & weight() { return wgt;}
};
为什么它必须包括方法的两个实现
对于第一个,将const放在那里有什么作用?对于第二个,放置&的作用是什么?
Widget(double w) : wgt(w) {assert(w>=0);}
的代码应作为构造函数使用,但是如何在此处理解wgt(w)?我们可以使用此类作为
Widget w(35);
cout <<w.weight()<<endl;
但是我看不到w(35)如何用于通过定义的构造函数创建对象?
此外,该w.weight使用功能权重的哪个工具?
最佳答案
const是您与编译器之间的约定,表示您不会使对象突变(在这种情况下,当您尝试修改该geting返回的值时,编译器将出错。使用&get时,您将获得该引用目的。
常量->非可变值
&(引用)->“可变的地址”引用。