我在类中看到了很多将 const 关键字放在函数后面的用法,所以我想知道它是关于什么的。我在这里阅读了smth:http://duramecho.com/ComputerInformation/WhyHowCppConst.html .
它说使用 const 是因为函数“可以尝试更改对象中的任何成员变量”。如果这是真的,那么它应该在任何地方使用,因为我不希望以任何方式更改或更改任何成员变量。
class Class2
{ void Method1() const;
int MemberVariable1;}
那么, const 的真正定义和用途是什么?
最佳答案
可以在 const 对象上调用 const 方法:
class CL2
{
public:
void const_method() const;
void method();
private:
int x;
};
const CL2 co;
CL2 o;
co.const_method(); // legal
co.method(); // illegal, can't call regular method on const object
o.const_method(); // legal, can call const method on a regulard object
o.method(); // legal
此外,它还告诉编译器 const 方法不应该改变对象的状态,并且会捕捉到这些问题:
void CL2::const_method() const
{
x = 3; // illegal, can't modify a member in a const object
}
使用 mutable 修饰符对上述规则有一个异常(exception),但在您涉足该领域之前,您应该首先熟悉 const 的正确性。
关于c++ - 在类的函数中使用 'const',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2157458/