// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
class A
{
public:
A();
~A();
void print(){
cout << "aaa" << endl;
}
private:
};
class B:public A
{
public:
B();
~B();
private:
};
class C:public A
{
public:
C();
~C();
private:
};
class D:public B,public C
{
public:
D();
~D();
void Print(){
B::print();
}
private:
};
D::D()
{
}
D::~D()
{
}
C::C()
{
}
C::~C()
{
}
B::B()
{
}
B::~B()
{
}
A::A()
{
}
A::~A()
{
}
int _tmain(int argc, _TCHAR* argv[])
{
D d;
d.Print();
getchar();
return 0;
//
#include "stdafx.h"
#include<iostream>
using namespace std;
class A
{
public:
A();
~A();
void print(){
cout << "aaa" << endl;
}
private:
};
class B:public A
{
public:
B();
~B();
private:
};
class C:public A
{
public:
C();
~C();
private:
};
class D:public B,public C
{
public:
D();
~D();
void Print(){
B::print();
}
private:
};
D::D()
{
}
D::~D()
{
}
C::C()
{
}
C::~C()
{
}
B::B()
{
}
B::~B()
{
}
A::A()
{
}
A::~A()
{
}
int _tmain(int argc, _TCHAR* argv[])
{
D d;
d.Print();
getchar();
return 0;
}
如上面的代码,要在D类中使用A类中的函数就会出现多重继承的问题,要解决这种问题,就必须要D类中重新写个接口,在接口中显式调用D类的基类,然后在他的基类中调用A的函数,就可以达到目的了