一个类的定义如下:

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时,您将获得该引用目的。

常量->非可变值

&(引用)->“可变的地址”引用。

10-04 21:19