error: reference to non-static member function must be called
时间: 2023-04-26 14:03:26 浏览: 75
错误:引用非静态成员函数必须被调用
这个错误通常出现在尝试使用非静态成员函数时,没有使用正确的语法来调用它。非静态成员函数必须通过对象来调用,而不是通过类名或指针来调用。例如:
class MyClass {
public:
void myFunction() {
// ...
}
};
MyClass myObject;
myObject.myFunction(); // 正确的调用方式
MyClass::myFunction(); // 错误的调用方式
MyClass* myPointer = new MyClass();
myPointer->myFunction(); // 正确的调用方式
delete myPointer;
相关问题
sort error: reference to non-static member function must be called
回答: 这个错误是因为在sort函数的第三个参数中引用了非静态成员函数,而在类定义中若不将成员函数声明为静态成员函数,会默认给成员函数添加一个this指针。而sort函数的第三个参数不允许有指针参数,所以会导致报错。解决这个问题的方法是将成员函数声明为静态成员函数,这样就不会添加this指针了。或者可以考虑将比较函数cmp定义为类外的普通函数,而不是成员函数。这样就可以解决该错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [[C++类静态成员函数]error: reference to non-static member function must be called](https://blog.csdn.net/qq_38337524/article/details/125084848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [[Leetcode]错误:error: reference to non-static member function must be called](https://blog.csdn.net/weixin_46428351/article/details/123554510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
error: reference to non-static member function must be called; did you mean to call it with no arguments?
这个错误提示通常出现在你试图直接引用一个非静态成员函数而不使用类对象的情况下。因为非静态成员函数依赖于具体的类对象,所以你需要先创建一个类对象,然后通过该对象来调用该成员函数,例如:
```cpp
class MyClass {
public:
void myFunction() {
// do something
}
};
int main() {
MyClass obj;
obj.myFunction(); // 调用非静态成员函数需要使用类对象
return 0;
}
```
如果你需要在没有创建类对象的情况下调用非静态成员函数,你可以将该成员函数声明为静态成员函数,或者将其定义为全局函数。但是这样可能会影响你的程序逻辑和设计,需要谨慎考虑。