コンパイラ エラー C2385

'member' へのアクセスがあいまいです

メンバーは複数のオブジェクトから派生できます (複数のオブジェクトから継承されます)。 このエラーを解決するには、

  • キャストを提供して、メンバーを明確にします。

  • 基底クラスのあいまいなメンバーの名前を変更します。

次の例では C2385 が生成されます。

// C2385.cpp
// C2385 expected
#include <stdio.h>

struct A
{
    void x(int i)
    {
        printf_s("\nIn A::x");
    }
};

struct B
{
    void x(char c)
    {
        printf_s("\nIn B::x");
    }
};

// Delete the following line to resolve.
struct C : A, B {}

// Uncomment the following 4 lines to resolve.
// struct C : A, B
// {
//     using B::x;
//     using A::x;
// };

int main()
{
    C aC;
    aC.x(100);
    aC.x('c');
}

struct C : A, B
{
    using B::x;
    using A::x;
};