6.3w+
社区成员
class Cherry
{
protected:
virtual void sell(){cout << "Cherry" << endl;}
};
class BingCherry : public Cherry
{
};
class Test : public BingCherry
{
public:
void getInfo(){sell();}//这里的sell()方法到底是Cherry的还是BingCherry的呢?
};
class Cherry
{
protected:
virtual void sell() = 0;
};
class BingCherry : public Cherry
{
protected:
virtual void sell(){cout << "BingCherry" << endl;}
};
class Test : public BingCherry//这里没有去实现哪个虚函数,为什么还能创建对象呢?
{
public:
void getInfo(){sell();}
};
Test类直接继承了BingCherry类,BingCherry里面的sell函数是唯一的,因为已经重写过了,
class A{
public:
A()
{
}
virtual ~A()
{
}
virtual void test()
{
cout <<"A test" <<endl;
}
};
class B:public A
{
};
class C:public A
{
};
class D:public B, public C
{
};
int main()
{
D d;
B* pb = &d;
C* pc = &d;
pb->test();
pc->test();
return 0;
}
class A{
public:
A()
{
}
virtual ~A()
{
}
virtual void test()
{
cout <<"A test" <<endl;
}
};
class B:public virtual A
{
};
class C:public virtual A
{
};
class D:public B, public C
{
public:
void dosth()
{test();}
};
int _tmain(int argc, _TCHAR* argv[])
{
D d;
d.test();
d.dosth();
}