繁体   English   中英

在C ++中:: *意味着什么?

[英]What does ::* mean in C++?

是什么

 private:
    BOOL (LASreader::*read_simple)();

意思?

它来自LAStools,位于lasreader.hpp

BOOL是一个typedef bool (来自mydefs.hpp ),但我不知道这行是什么声明,特别是::* (双冒号星号),它看起来像一个函数调用。

它是指向成员函数指针 具体来说, read_simple是一个指向类LASreader的成员函数的指针,它接受零参数并返回BOOL

从cppreference中的示例:

struct C {
    void f(int n) { std::cout << n << '\n'; }
};
int main()
{
    void (C::*p)(int) = &C::f; // p points at member f of class C
    C c;
    (c.*p)(1); // prints 1
    C* cptr = &c;
    (cptr->*p)(2); // prints 2
}
BOOL (LASreader::*read_simple)();

read_simple是一个指向LASreader类的成员函数的LASreader ,它不带任何参数并返回BOOL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM