C++ 从抽象类调用函数

C++ 从抽象类调用函数,c++,struct,function-pointers,member-function-pointers,C++,Struct,Function Pointers,Member Function Pointers,有一个头文件,其结构的一个成员是函数指针。我试图将一个私有函数从一个派生抽象类传递到结构中的函数指针。我该怎么做? 1.我不想要类标题。我只想要头中的结构。 2.实例化抽象类还需要实现虚拟方法。这能避免吗 //Channel_U.h namespace MFW { class Channel_U : public Channel { public: tOData theOutData; private: void ProcessFuncInput(tAnalogChannel * pAC)

有一个头文件,其结构的一个成员是函数指针。我试图将一个私有函数从一个派生抽象类传递到结构中的函数指针。我该怎么做? 1.我不想要类标题。我只想要头中的结构。 2.实例化抽象类还需要实现虚拟方法。这能避免吗

//Channel_U.h
namespace MFW
{

class Channel_U : public Channel
{
public:

tOData theOutData;

private:
void ProcessFuncInput(tAnalogChannel * pAC);
void Process_Null(tAnalogChannel * pAC);
};
}
//table.h

namespace MFW
{
typedef void (*tAnalogProcessFunc)(t_AnalogChannel * pAC);


typedef struct _tableEntry_
{
  int      gain;
  void (*processFunc)(t_AnalogChannel *);
  tAnalogProcessFunc procFunc;
}table

static const table configTable[] =
{
 .processFunc    = Process_Null, //HERE
 .gain           = 0,
 .procFunc       = ProcessFuncInput//HERE
};
}
我尝试实例化类对象并调用函数,这导致了错误:

未在此作用域中声明“Process_Null”

“ProcessFuncInput”未在此范围内声明

与您的问题略微无关,但成员函数的输入与非成员函数的指针不同。对于指向成员函数的指针,您需要一个实际对象来调用上的成员函数。由于错误与dupe问题不匹配,请重新打开。在这里留下一个链接,因为一旦修复了第一个错误,这将是一个问题:
Channel
是您的抽象类吗?您发布的代码中没有任何纯虚拟函数。是否所有的
\u表项都是从
通道
子类实例填充的?编译器是正确的,这些函数没有声明。如果我声明它们并将语法更改为表{0,Process_Null,ProcessFuncInput},它会起作用,但我不太确定如何在全局对象中使用Channel_::ProcessFuncInput,因为这对我来说没有意义。您考虑过将通道实例添加到表中吗?@Caleth是的,
channel
是一个抽象类。是的,有许多我没有列出的纯虚拟函数。结构中未填充任何虚拟函数。是的,函数
Process\U Null
ProcessFuncInput
是从通道子类(
Channel\U
)传递到结构的函数。