gpt4 book ai didi

c++ - 无法在 C++ 中调用 const 引用参数的方法

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

class A
{
public:
A(){};
~A(){};
void method(){};

};

void call(const A &a)
{
a.method(); // I cannot call this method here if I use "const" but I can call it if not using "const"
}

int main()
{
A a;
call(a);
return 0;
}

在这种情况下,错误是:“将 const A 作为 void A::method() 的参数传递会丢弃限定符 [-fpermissive]|

在函数 call 中,如果我使用 const,我会得到错误,但如果我去掉它,它就会工作。

谁能帮我解释一下?

最佳答案

您不能通过常量引用调用非常量成员函数。您可以通过使成员函数 const 来解决此问题:

void method() const {};
^^^^^

这表明调用成员不会改变调用它的对象*

* 从概念上讲。在实践中,它可以改变标记为 mutable

的成员

关于c++ - 无法在 C++ 中调用 const 引用参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987916/

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