c++ - 函数指针指向成员函数

标签 c++ function pointers

我刚刚学习函数指针,想测试它如何与成员函数一起使用。以下代码在标记处编译失败。

# include <iostream>
# include <stdio.h>
using namespace std ;

class TMyClass {
public:
  int DoIt ( float a, char b, char c ) {
    cout << " TMyClass::DoIt " << endl ;
    return a + b + c ;
  }

  int DoMore ( float a, char b, char c ) {
    cout << " TMyClass::DoMore " << endl ;
    return a - b + c ;
  }

  int ( TMyClass::*pt2Member ) ( float, char, char ) ;

  int test_function_pointer ( ) {
    this->pt2Member = &TMyClass::DoMore ;
    int result = ( this -> *pt2Member ) ( 12, 'a', 'b' ) ; // wrong!
    // expected unqualified-id before "*" token

    return 0 ;
  }
} ;

int main () {
  TMyClass A ;
  A.test_function_pointer () ; 
  return 0 ;
}

我想知道如何让它发挥作用。谢谢!

最佳答案

空间的作用有多大:

int result = ( this ->* pt2Member ) ( 12, 'a', 'b' );
                 // ^^^

->* 是一个独立的运算符。

查看修复的演示 here请。

关于c++ - 函数指针指向成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41075546/

相关文章:

mysql - 尝试编写一个存储函数以在 mysql UPDATE SET 语句中使用

C++ 尝试设置指向新对象的指针

c++ - 指向成员类型和模板的指针

c++ - 将 char 数组转换为 unsigned char*

c++ - 如何使用 Opengl 库显示文本文件中的 3D 点

javascript - 如何在 Javascript 中向 btn.innerHTML 添加函数?

C++ 11 STL 列表 = 和 != op 未定义

vba - 类模块函数中的错误处理

c++ - std::map 其中键是动态的或字符串文字

c++ - 函数指针的取消引用是如何发生的?