理解C++中的常量
Understanding const in C++
我们得到了一个语义和语法正确的方法,如下所示:
const Foo & bar( const Bim & bam ) const;
我们应该解释三个const调用中的每一个的含义。我刚接触C++,不知道它们是什么意思。我大致理解,末尾的const意味着只能对const变量调用该方法,并承诺不会传播更改。然而,我不理解另外两个。如果我上一次错了,请纠正我。
的解释见下文
(1)const Foo & bar( (2)const Bim & bam ) (3)const;
- 该方法返回一个Foo类型的引用,该引用是不可变的
- Bim类型的方法参数不会被该方法修改。这意味着您可以将常量和非常量对象传递到此方法中。无论哪种方式,该方法都不会修改对象,或者只能调用该对象上的const方法
- 这意味着该方法不会以任何方式更改对象
PS:对于3,如果你是一个顽皮的男孩,有办法解决这个问题
我(大致)理解结尾的const意味着方法只能对const变量调用,并承诺不会传播更改。
对一半。该函数可以在常量或非常量对象上调用,并承诺不修改对象的状态(非可变成员)或调用任何非常量成员函数。调用非常量对象是可以的,但反过来则不然。也就是说,如果后面的const不在那里,那么就可以在const对象上调用而不是。
->对于int func1()const;当您在函数末尾指定常量时,这意味着此函数是只读的,您不能修改调用此函数的对象。->对于func(const-bim);您所理解的函数参数中的常量将不允许更改该特定对象。->对于const func2();表示此函数的返回类型为常量。
相关文章:
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 什么时候在C++中返回常量引用是个好主意
- 代理对象的常量正确性
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 通过多个头文件使用常量变量
- 在cuda线程之间共享大量常量数据
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 是默认情况下分配给char数组常量的值
- 私有类型的静态常量成员
- 类似枚举的计算常量
- 递归模板化函数不能分配给具有常量限定类型"const tt &"的变量"state"
- 为什么我可以通过引用修改常量返回
- 如何创建长度由常量参数指定的数组
- 当一个值是非常量但用常量表达式初始化时使用constexpr
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- 隐式常量/非常量运算符布尔
- 非常量变量只读位置的赋值
- constexpr构造函数需要常量成员函数时出现问题