1

我们得到了一个语义和语法正确的方法,如下所示:

const Foo & bar( const Bim & bam ) const;

我们应该解释三个 const 调用中的每一个的含义。我是 C++ 新手,不知道它们是什么意思。我(大致)理解,最后的 const 意味着该方法只能在 const 变量上调用,并承诺不会传播更改。但是,我不明白其他两个。如果我在最后一个错误,请纠正我。

4

3 回答 3

4

请参阅下面的说明

(1)const Foo & bar( (2)const Bim & bam ) (3)const;
  1. 该方法返回不可变的 Foo 类型的引用。
  2. Bim 类型的methods 参数不会被该方法修改。这意味着您可以将 const 和非常量的对象传递给此方法。无论哪种方式,该方法都不会修改对象,或者只能调用该对象上的 const 方法。
  3. 这意味着此方法不会以任何方式更改对象。

PS:如果你是个顽皮的男孩,3 有办法解决这个问题

于 2013-02-12T06:02:29.557 回答
0

我(大致)理解,最后的 const 意味着该方法只能在 const 变量上调用,并承诺不会传播更改。

对了一半。该函数可以在 const 或非 const 对象上调用,并承诺不修改对象的状态(非可变成员)或调用任何非 const 成员函数。调用非常量对象是可以的,但反之则不然。也就是说,如果尾随的 const 不存在,则无法在 const 对象上调用它。

于 2013-02-12T06:01:51.630 回答
0

-> For int func1() const; 当您在函数末尾指定常量时,这意味着此函数是只读的,您不能修改调用此函数的对象。-> 对于 func (const bim); 如您所知,函数参数中的常量不允许更改该特定对象。-> 而对于 const func2(); 表示此函数的返回类型是常量。

于 2013-02-12T06:06:33.943 回答