簡體   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