gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 08:26:06 25 4
gpt4 key购买 nike

我有多个类,它们的行为完全不同,但同时共享必须访问成员变量的通用函数。

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

最终结果应该是这样的:

ClassA::CallFoo()
ClassB::CallFoo()
ClassC::CallFoo()

其中 CallFoo() 定义在共享文件中,如 [怪异的假设语法]

<template this* T>::CallFoo(){T->memberX->DoStuff();}

C++ 可以实现类似的功能吗?我似乎找不到任何关于代码重用和多类的信息。

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

不幸的是,memberX 不在我的源代码中,而是在库 header ClassA 中:public LibClass,所以我不能在那里覆盖它。

最佳答案

如果你说的是所有这些类都继承自包含memberX的LibClass,那么只要再增加一层继承即可:

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

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

关于c++ - 多个类的共享模板成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com