具体的にコード書いてくれると理解の助けになるんだけど。 class A{ public: f(): }; class B:public A{}; class C:public A{}; class D:public B,public C{}; d; d.f(); こんな場合だとエラーです。 d.B::f(); とか書けば良かったかと思いまふ。 それか仮想継承するとか。
仮想継承しても class A{ public: virtual f(): }; class B:virtual public A{ public: virtual f(); }; class C:virtual public A{ 0public: virtual f(); }; class D:public B,public C{}; これはエラーかと。Dの中で改めて f(); を定義すれば良し。