c++ - 如何指向引用类的函数?

标签 c++ pointers

有没有办法在引用的类中有一个指向函数的指针?

我试过用另一个指针替换对类的引用,但没有用。
我也尝试过使用 -> 而不是 ,没有成功。

class First {
  void FunToPointTo();
};
class Second {
  First &reference;
  void (*pointer)();
  Second(First &first);
};

Second::Second(First &first) : reference(first) {
  pointer = reference.FunToPointTo;
}

错误:无法将“First::FunToPointTo”从类型“void (First::)()”转换为类型“void (*)()”

现在我试图以某种方式使我的指针指向 void (First::)(),但我不知道确切的语法。

非常感谢帮助,还请原谅我的知识不足,因为我刚刚开始使用 C++。

最佳答案

你的指针类型应该是

void (First::*ptr)()

并赋值给

&First::FunToPointTo

因为您需要指定函数来自 First 类。

关于c++ - 如何指向引用类的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54652323/

相关文章:

c# - 如何将对象数组传递给非托管代码?

c - 将指向内存的指针初始化为 "handles"

c - 如何将结构体中的指针直接分配给新结构体?

c++ - vector 中的 push_back 是否在同一位置插入?

c++ - 将指针 push_back 到指针 vector 中是内存泄漏吗?

c++ - 从 'void *' 转换为 'const std::string *&' 必须使所有中间指针 const 合格

c++ - 用于在 PowerPC 中执行系统调用的通用 C/C++ 函数

c++ - 一个 Excel XLL 插件可以有多少内存?

c++ - Unicode版本的base64编码/解码

c - 合并排序不断循环并进入段错误