gpt4 book ai didi

c++ - 类面向对象错误中的常量指针

转载 作者:可可西里 更新时间:2023-11-01 10:53:15 24 4
gpt4 key购买 nike

我在下面有一个无法编译的简单示例。我收到以下关于 const 的警告

错误信息:错误 C2662:“Cfoo::GetNum”:无法将“this”指针从“const Cfoo”转换为“Cfoo &”转换丢失限定符

class Cfoo 
{
public:
bool RunMe( const Cfoo * bar ) {
int i = bar->GetNum() ;
}

int GetNum() {
return 7;
}
};

int _tmain(int argc, _TCHAR* argv[])
{
Cfoo a;

Cfoo b;
b.RunMe( &a);

return 0;
}

起初我认为这与 GetNum 不返回常量值有关。改变似乎没有帮助。

我做错了什么?建议、提示、示例、链接?

最佳答案

GetNum 必须保证它不会通过使对象成为 const 成员函数来更改对象的值

class Cfoo 
{
public:
bool RunMe( const Cfoo * bar ) {
int i = bar->GetNum() ;
}

int GetNum() const { // !!!
return 7;
}
};

关于c++ - 类面向对象错误中的常量指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3569856/

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