报错内容为16 17 C:\Users\FEI\OneDrive\Desktop\code.cpp [Error] invalid use of member (did you forget the '&' ?)
时间: 2024-10-24 07:18:23 浏览: 13
CentOS6挂载linux7samba服务时报错:mount error(22): Invalid argument Refer to the mount.cifs(8) manual page (
这个报错提示"invalid use of member (did you forget the '&' ?)"通常发生在试图对对象成员变量或函数进行操作,但是忘记在其前面加上取地址符 `&` 的情况下。例如,如果你有一个函数指针,并想通过它调用某个对象的成员函数,你应该使用 `(*ptr)()` 而不是 `ptr()`。
假设你在下面的代码片段中看到了这样的错误:
```cpp
MyClass obj;
MyClass::myFunction ptr = &obj.myFunction; // 正确的赋值
// 错误的使用
ptr(); // 这里需要加 &
(*ptr)(); // 或者这样调用
```
或者是你试图修改一个非引用的对象成员:
```cpp
int value = 10;
value++; // 正确的使用,无需加 &
const MyClass& myObj = ...; // 如果是引用
myObj.myMember = 5; // 错误,需要加 &
```
在上述情况下,你需要确保在使用成员操作符 `.` 或 `->` 前面加上 `&` 或 `->` 来获得成员的内存地址,以便进行修改或调用。
阅读全文