Как вызвать метод класса, если в нём есть нужный метод для вызова в C++?

есть следующее:

class A{
    void callAnotherClass(...){...}
    ...
};

Как сделать так чтобы, если в любом другом классе был определён метод, к примеру, с названием "beCalled", то в метод класса A "callAnotherClass" можно было бы передать экземпляр класса с реализованным методом "beCalled" и вызвать этот "beCalled" метод?

Хочу сделать что-то похожее на функцию "std::cout <<", для использования которой с не стандартными типами нужно переопределить оператор <<.


Ответы (1 шт):

Автор решения: llollcat

Спасибо за решение @user7860670. Следующий код делает то, что я и хотел:

#include "iostream"

class A {
public:
    template<typename x_Object>
    void callAnotherClass(x_Object &obj) { 
        obj.beCalled(); 
    }

};

class B{
public:
    void beCalled() {
        std::cout <<"Called";
    }
};


int main() {
    A a =A();
    B b = B();
    a.callAnotherClass(b);
    
    return 0;
}
→ Ссылка