我有两个类,它们的某些方法具有相同的名称。
我可以创建第三个类来接受其他两个对象的引用,并在构造函数中将obj变量设置为A或B类型吗?

class A
{
    public:
        A();
        void f();
};

class B
{
    public:
        B();
        void f();
};

class C
{
    public:
        C(B&);
        C(A&);

    ??? obj;
};

最佳答案

也许您想要一个模板类:

template <typename T>
class C
{
    T& obj;
    public:
        explicit C(T& t) : obj(t) {}
        void f() { obj.f(); }
};

然后:
A a;
B b;
C<A> c1(a);
C<B> c2(b);
c1.f();
c2.f();

关于c++ - 类引用另外两个类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31047798/

10-13 08:07