C++ 多个类的共享模板成员函数

C++ 多个类的共享模板成员函数,c++,templates,C++,Templates,我有多个在行为上完全不同的类,但同时,共享必须访问成员变量的公共函数 所以我想做的是创建一个模板成员函数,以避免额外的复制粘贴代码重复 最终结果应该是: ClassA::CallFoo() ClassB::CallFoo() ClassC::CallFoo() 其中CallFoo()是在共享文件中定义的,如[weirdo假想语法] ::CallFoo(){T->memberX->DoStuff();} 是用C++实现的吗?我似乎找不到任何关于代码重用和多个类的东西 编辑: 我有多个班,A班,B

我有多个在行为上完全不同的类,但同时,共享必须访问成员变量的公共函数

所以我想做的是创建一个模板成员函数,以避免额外的复制粘贴代码重复

最终结果应该是:

ClassA::CallFoo()
ClassB::CallFoo()
ClassC::CallFoo()
其中CallFoo()是在共享文件中定义的,如[weirdo假想语法]

::CallFoo(){T->memberX->DoStuff();}

<>是用C++实现的吗?我似乎找不到任何关于代码重用和多个类的东西

编辑: 我有多个班,A班,B班,C班。。。ClassX,所有这些都有一个成员变量memberX。为了在类的成员函数中使用该成员变量,我必须对该变量进行一些设置和预处理,这对于所有类都是相同的。因此,ClassA可以有一个方法DoCoolStuff1(),它必须调用[shared code]来获取更新的共享变量,ClassB可以有一个方法DoBoringStuff1(),它也可以调用[shared code]


不幸的是,memberX不在我的源代码中,而是在库头ClassA:public LibClass中,因此我无法在那里重写它。

如果您所说的是所有这些类都继承自包含memberX的LibClass,那么只需再添加一层继承:

class myLibClass : public LibClass
{
    void CallFoo() { // do stuff with memberX }
};

class classA : public myLibClass {};
class classB : public myLibClass {};
etc...

你能举出更具体的例子吗?详细说明你试图解决的问题,而不是理论。试图更好地解释,请参见编辑…你是说所有这些类都是LibClass类的子类,数据成员就在那里?是的,它们是,是的,数据成员就是该类的。