错误 C3867 “Imref::YImageSpacing”: 非标准语法;请使用 "&" 来创建指向成员的指针
时间: 2024-03-16 19:46:08 浏览: 32
这个错误是因为你在使用成员函数时没有使用成员函数指针的正确语法。你需要使用 "&" 来获取成员函数的指针,然后再将其传递给需要使用它的函数。
例如,如果你想将一个成员函数指针传递给另一个函数,你可以这样做:
```cpp
class MyClass {
public:
float YImageSpacing() const {
return m_yImageSpacing;
}
private:
float m_yImageSpacing;
};
void SomeFunction(float (MyClass::*getYImageSpacing)() const) {
MyClass obj;
float ySpacing = (obj.*getYImageSpacing)();
// do something with ySpacing
}
int main() {
SomeFunction(&MyClass::YImageSpacing);
return 0;
}
```
在这个例子中,你首先定义了一个成员函数 `YImageSpacing()`,然后在 `SomeFunction()` 中使用了成员函数指针参数 `getYImageSpacing`。在 `main()` 中,你将 `&MyClass::YImageSpacing` 作为参数传递给 `SomeFunction()`,这相当于传递了 `MyClass` 的成员函数 `YImageSpacing()` 的指针。
注意,使用成员函数指针时,你需要使用 `.*` 或 `->*` 运算符来调用成员函数,这取决于你是在对象上还是在指向对象的指针上调用成员函数。在上面的例子中,`obj.*getYImageSpacing()` 表示在 `obj` 对象上调用 `getYImageSpacing` 所指向的成员函数。
阅读全文