簡體   English   中英

如何在類中調用無參數函數指針?

[英]How do I call a parameterless function pointer from within a class?

這是我上一篇文章中擴展的新問題: 如何在此類中使用函數指針?

我班有3名成員:

void (X2D::Graphics::OpenGL::Circle::*draw_ptr)(void);
void draw_filled();
void draw_outlined();

此方法顯示了它們的分配方式:

void Circle::fill(const bool fill)
{
    m_fill = fill;

    if (fill)
        draw_ptr = &Circle::draw_filled;
    else
        draw_ptr = &Circle::draw_outlined;
} 

因此, draw_ptr函數指針指向either draw_filled()draw_outlined()

在同一個類中,我有以下方法:

void draw() { this->draw_ptr; }

但是,我在draw_filled()放置了一個調試點,應該在該調試點進行調用,而在draw_filled()中不會調用draw() draw_filled() 因為draw_ptr是無參數的,所以我幾乎可以肯定,它只是將地址返回給函數而已。 但是,我想打電話給這個地址。

使用draw_ptr()不起作用,因為出現錯誤:

錯誤C2064:術語未求值為帶有0個參數的函數

因此,我將其保留為draw_ptr

我打給draw_ptr錯了嗎?

void draw() {
  (this->*(this->draw_ptr))();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM