理解C++中的常量

Understanding const in C++

本文关键字:常量 C++ 理解      更新时间:2023-10-16

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

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

我们应该解释三个const调用中的每一个的含义。我刚接触C++,不知道它们是什么意思。我大致理解,末尾的const意味着只能对const变量调用该方法,并承诺不会传播更改。然而,我不理解另外两个。如果我上一次错了,请纠正我。

的解释见下文

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

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

我(大致)理解结尾的const意味着方法只能对const变量调用,并承诺不会传播更改。

对一半。该函数可以在常量或非常量对象上调用,并承诺不修改对象的状态(非可变成员)或调用任何非常量成员函数。调用非常量对象是可以的,但反过来则不然。也就是说,如果后面的const不在那里,那么就可以在const对象上调用而不是

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