C++ 是否可能有一个基类方法调用所有它的相同(但被重写的方法)';什么是派生类?

C++ 是否可能有一个基类方法调用所有它的相同(但被重写的方法)';什么是派生类?,c++,oop,design-patterns,inheritance,C++,Oop,Design Patterns,Inheritance,这有点难以用语言来解释,所以我举一个例子: (以下代码的语法可能不正确,但足以说明问题) 我知道静态成员函数不会相互覆盖, 但让我们假设他们这样做。 我想要实现的是当A::Update(someValue)时被调用, 它应该隐式地调用B::Update(someValue),也应该隐式地调用C::Update(someValue),以及调用从 这有可能吗? 如果是,你会怎么做呢?我认为你应该使用复合模式。你可以在和上阅读,我认为你应该使用复合模式。你可以在和上读到,我的评论下面的信息不足以对你的

这有点难以用语言来解释,所以我举一个例子:

(以下代码的语法可能不正确,但足以说明问题)

我知道静态成员函数不会相互覆盖, 但让我们假设他们这样做。 我想要实现的是当
A::Update(someValue)时被调用,
它应该隐式地调用B::Update(someValue),也应该隐式地调用C::Update(someValue),以及调用从

这有可能吗?
如果是,你会怎么做呢?

我认为你应该使用复合模式。你可以在和上阅读,我认为你应该使用复合模式。你可以在和

上读到,我的评论下面的信息不足以对你的代码有一个清晰的概念,但我在想,是否有可能像C#对事件所做的那样,注册事件,然后触发的类(在这种情况下,你的基类)可以实现一个函数指针列表(指向派生方法,在这种情况下,必须有派生类的实例)然后调用所有人,然后迭代这个列表。只是一个想法,不知道这是否是您需要的。

我的评论下面的信息不足以清楚了解您的代码,但我在想,是否可以像C对事件所做的那样,注册事件和随后触发的类(在这种情况下,基类)可以实现函数指针列表(指向派生方法,在这种情况下,必须有派生类的实例)并调用所有这些,然后迭代此列表。只是一个想法,不知道这是否是您所需要的。

没有自动执行的方法。获得效果的简单方法是每个派生类调用其基类的函数:

class A
{
  public:
    static void Update(UINT someValue) {
        std::cout << "A\n";
    }
};

class B : public A
{
  public:
    static void Update(UINT someValue) {
        A::Update(someValue);
        std::cout << "B\n";
    }
};
A类
{
公众:
静态无效更新(UINT someValue){

std::cout没有自动执行的方法。获得效果的简单方法是让每个派生类调用其基类的函数:

class A
{
  public:
    static void Update(UINT someValue) {
        std::cout << "A\n";
    }
};

class B : public A
{
  public:
    static void Update(UINT someValue) {
        A::Update(someValue);
        std::cout << "B\n";
    }
};
A类
{
公众:
静态无效更新(UINT someValue){

std::cout这是不可能的,并且与OOP的目的相反。父类不知道它的子类。这些类将如何实例化?@Andres那么,在我的代码中:
Specific_Material spM;Material*pM=&spM;
这是不可能的,并且与OOP的目的相反。父类不知道它的子类。这些类将如何实例化?@Andres嗯,在我的代码中:
Specific\u Material spM;Material*pM=&spM;
这可能是一个解决方案,是的,但atm我认为复合设计模式是更好的选择这可能是一个解决方案,是的,但atm我认为复合设计模式是更好的选择Oice这是一个非常疯狂的设计模式哈哈,适合我的需要:)这是一个非常疯狂的设计模式哈哈,适合我的需要:)