在C++中函数声明结束时的Const

Ven*_*nom 2 c++ const function

可能重复:
C++方法声明中"const"的含义是什么?

在下面的函数声明中,

const char* c_str ( ) const;  
Run Code Online (Sandbox Code Playgroud)

第二个const做了什么?

jua*_*nza 17

这意味着该方法是一个"const方法"对这种方法的调用不能改变任何实例的数据(mutable数据成员除外),并且只能调用其他const方法.

const方法可以在const或非const实例上调用,但非const方法只能在非const实例上调用.

struct Foo {
  void bar() const {}
  void boo() {}
};

Foo f0;
f0.bar(); // OK
fo.boo(); // OK

const Foo f1;
f1.bar(); // OK
f1.boo(); // Error!
Run Code Online (Sandbox Code Playgroud)

  • 为"有一些例外"+1 (3认同)