c++ - 是否有可能有一个基类方法调用所有派生类的相同(但被覆盖的方法)?

标签 c++ oop design-patterns inheritance

用文字表达起来有点困难,我举个例子:

(以下代码可能语法不正确,但足以给出一个思路)

class A
{
public:
   static void Update(UINT someValue);
};

class B : public A
{
public:
   static void Update(UINT someValue);
};

class C : public A
{
public:
   static void Update(UINT someValue);
};

我知道静态成员函数不会互相覆盖, 但让我们假设他们这样做了。 我想要实现的是什么时候 A::Update(someValue);叫做, 它应该隐式调用 B::Update(someValue) 和 C::Update(someValue),以及调用每个 static void Update(UINT someValue)从 A 派生的其他类的方法

这有可能以某种方式实现吗? 如果是,您会怎么做?

最佳答案

我认为你应该改用复合模式。您可以在 http://en.wikipedia.org/wiki/Composite_pattern 阅读相关信息和 http://www.javacamp.org/designPattern/composite.html

关于c++ - 是否有可能有一个基类方法调用所有派生类的相同(但被覆盖的方法)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9484807/

相关文章:

c++ - 重新声明枚举器

java - 我如何在 Java 中组合两个对象?

c++ - 用 C++ 为格式化文本编写解析器

c++ - 在 gcc 和 g++ include 和 lib 路径中指定顺序

.net - 如果 .NET 使应用程序占用空间过大,托管内存有哪些优势?

php - 有没有办法到处避免 $this-> ?

arrays - 自删除数组元素(一旦它们变得未定义)

java - 找不到在对象类中定义的符号(方法)

java - 需要创建一个只能从 G 实例化的 A 类

c++ - 如何选择一个类来动态实例化?