1
爲什麼這個工程虛方法與多重繼承
struct Base {
virtual void visit(const A &) { };
virtual void visit(const B &) { };
}
不同的表現,這抱怨歧義調用訪問方法時
template< typename T >
struct X {
virtual void visit(const T &) { };
};
struct Base: X<A>, X<B> { };
這也說明了同樣的問題:
struct Y {
virtual void visit(const A &) { };
};
struct Z {
virtual void visit(const B &) { };
};
struct Base: Z, Y { };
不知何故,它看起來像虛擬函數簽名的多重繼承混亂...
用gcc版本4.8.0 20130411(預發佈)
[multiple-inheritance-template-class]可能的重複(http://stackoverflow.com/questions/3360892/multiple-inheritance-template-class) – yngccc 2013-05-09 01:02:49
備註:你不需要';'在' }'在'virtual void visit(const A &) { };'''結束函數體,這很難看。 – curiousguy 2013-05-14 05:07:40