我有兩個類,有一些名稱相同的方法。 我可以創建第三個類,接受來自另一個兩個ony的引用,並在構造函數中將obj變量設置爲A或B類型?類參考另外兩個類
class A
{
public:
A();
void f();
};
class B
{
public:
B();
void f();
};
class C
{
public:
C(B&);
C(A&);
??? obj;
};
是的,但你怎麼做取決於這些類代表什麼以及你如何使用它們。 「C」應該有編譯時決定的'A'還是'B'成員?在這種情況下,使用模板。 A'和'B'是否表示共同行爲的特殊實現?然後創建一個基類並使用繼承和虛函數。 – TartanLlama
如果'A'和'B'的子類都是'X',那麼你可以聲明'obj'爲'X' – Cyclonecode
[Boost變種]怎麼樣(http://www.boost.org/doc/libs/ 1_58_0/DOC/HTML/variant.html)? –