【发布时间】:2016-09-23 19:24:44
【问题描述】:
我试图尽可能地(或至少使用 GNU)编译器/内置函数来围绕 C++ 类的一些更高级的点。所有这些都基于(大型和广泛的)工作项目的记录器概念。这让我想到了这个伪代码:
class Base {
public:
void increment(){
++m_Val;
}
private:
static int m_Val;
};
class Above : private Base{
public:
void doA(){
//Foo
}
void doB(){
//Bar
}
};
已被显示为一个概念;有没有办法让基类的单纯继承允许doA() 和doB() 隐式调用基函数increment(),而无需我在继承它的每个类的每个函数中实际添加对increment() 的函数调用?如果不是直接答案,是否有一个特定的术语来表示我想做的事情?还是作为 Boost 或其他库的一部分提供?
【问题讨论】:
-
我认为不存在。
-
你可能对aspect-oriented programming感兴趣。
-
@DanielA.White 绝对是我害怕的。我知道 C++ 仍然是一种“成长中”的语言,但不确定是否有办法通过一些“hacky 代码”来做到这一点或之前
-
我们需要描述您想要完成的工作以获得合理的答案。
-
@sleeptightpupper 正如我在底部所说,虽然我会添加更多内容:我希望多个(数十个)类继承
Base,因此他们的所有他们自动调用(在这种情况下)Increment()的函数。除了必须复制和粘贴Increment()9000 次并将代码弄乱之外。逐渐地,它将成为堆栈跟踪或记录器的一部分。
标签: c++ class polymorphism multiple-inheritance