gpt4 book ai didi

c++ - 在 C++ 类中重新声明一个函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:47 26 4
gpt4 key购买 nike

class arbit
{
int var;
public:

int method1();
int method1() const;

};

为什么 g++ 在这里声明同一个函数两次时不发出警告?

最佳答案

因为一个是 const 而另一个不是。这些是不同的重载,具有不同的签名。一个或另一个被调用,取决于你调用它的对象是否是 const

例子:

arbit x;
x.method1(); // calls the non-const version
arbit const &y = x;
y.method1(); // calls the const version

如果方法不修改对象的(可见)状态,则应将方法声明为 const。这使您可以分发 const arbit 对象,并确保¹不会有人意外修改它们。

例如,您可以使函数 setValue 成为非 const(因为它会修改对象),但 getValue 将是 常数。因此,在 const 对象上,您可以调用 getValue 而不是 setValue


¹ 有志者事竟成,这就是const_cast。但是忘了我曾经告诉过你吧。

关于c++ - 在 C++ 类中重新声明一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3443495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com