参考:https://blog.csdn.net/error0_dameng/article/details/82291854
代码:
#include<iostream>
using namespace std;
class interface1//爸爸1
{
public :
virtual int add(int a,int b){
return a+b;
}
virtual void printf(){
cout<<"I am interface1."<<endl;
}
};
class interface2//爸爸2
{
public:
virtual int mul(int a, int b){
return a*b;
}
virtual void printf(){
cout<<"I am interface2."<<endl;
}
};
//在工程中我们一般不会用到多继承的语法,因为多继承的菱形结构会发生二义性
//
class A:public interface1,public interface2//A继承爸爸1 爸爸2,以及其中的虚函数
{
public:
virtual int mul(int a,int b)
{
this->m_a = a;
this->m_b = b;
return a*b;
}
virtual int add(int a, int b)
{
this->m_a = a;
this->m_b = b;
return a+b;
}
private:
int m_a;
int m_b;
};
int main()
{
interface1 *t1=NULL;
interface2 *t2 = NULL;
A a1;
t1 = &a1;
cout << t1->add(1, 1) << endl;
t1->printf();
t2 = &a1;
t2->mul(3, 9);
t2->printf();
a1.printf(); //不合法
return 0;
}