両方のあなたが明示的にあなたが実際に参照したい注入されたベース・クラス名とサイズへの呼び出しを修飾する必要があるため、問題がある知っています。
しかし、あなたがしているのは恐ろしい悪です。 std::vector
は継承されることは意図されていません(コードは決してコンパイルされません。テンプレートです)。あなたが本当にsignal/slot shenanigansを持つシーケンスコンテナが必要な場合は、QListを使うべきです。
#include <iostream>
struct A {
void foo() { std::cout << "A\n"; }
};
struct B {
void foo() { std::cout << "B\n"; }
};
struct C : A, B {
using A::foo;
void bar() {
foo();
}
};
int main() {
C c;
c.bar();
}
クラス内(すべてのメンバ関数に適用されます)、または特定の機能の中に次のいずれかのあなたはどの言ってusing
と、どちらか一方であることを、それを強制することができます一般的なケースでは
出典
2012-02-22 09:55:14
pmr
もっと重要な疑問は、あなたが 'std :: vector'から派生している理由です。このクラスは継承のために設計されていません。 – Naveen
代わりに/ subclass [QListWidget](http://developer.qt.nokia.com/doc/qt-4.8/QListWidget.html)を試してみてください。 –