?????????????????f??????????????

ii.istream::f();

?????????????????????istream??vptr????f()?????? ???????????????????????????е???????????????????????????????????????????????

class B1
{
public:
    B1(){cout<<"B1::B1()!<"<<endl;}
    void f() {cout<<"i'm here!"<<endl;}
};

class V1: public B1
{
public:
    V1(){cout<<"V1::V1()!<"<<endl;}
};

class D1: virtual public V1
{
public:
    D1(){cout<<"D1::D1()!<"<<endl;}
};

class B2
{
public:
    B2(){cout<<"B2::B2()!<"<<endl;}
};

class B3
{
public:
    B3(){cout<<"B3::B3()!<"<<endl;}
};

class V2:public B1?? public B2
{
public:
    V2(){cout<<"V2::V2()!<"<<endl;}
};

class D2:virtual public V2?? public B3
{
public:
    D2(){cout<<"D2::D2()!<"<<endl;}
};

class M1
{
public:
    M1(){cout<<"M1::M1()!<"<<endl;}
};

class M2
{
public:
    M2(){cout<<"M2::M2()!<"<<endl;}
};

class X:public D1?? public D2
{
    M1 m1;
    M2 m2;
};
int main(int argc?? const char * argv[])
{
    X x;
};

???????????????????Exceptional C++ Style???й???????????δ?????????????????????й???????????????β?????????????????е????????ü?н?????????????????????????????????c++????????????????????????c++??????????????????????????????????

????1???????????????????????????????????????????????????????????????????????????????г??????

????2????????????????????????????????????????????????

????3?????????????????????????????е??????????????????????

????4??????????????????屻??С?