关于多继承解决思路

关于多继承
C/C++ code

class A
{
public:
virtual void fun()
{
    printf("1");
}
};

class B : public A
{
    public:
    virtual void fun()
    {
        printf("2");
    }
};
class C : public A
{
    public:
    virtual void fun()
    {
        printf("3");
    }
};
class D : public B , public C
{

};
int _tmain(int argc, _TCHAR* argv[])
{
    C c;
    c.fun();
    return 0;
}

输出3,为什么呀

------解决方案--------------------
C的对象调用的是C的fun(),输出3不是很正常吗?

你要说的是D的对象调用fun()函数吧?