64,649
社区成员
发帖
与我相关
我的任务
分享
struct I1
{
virtual void f() = 0;
};
struct I2
{
virtual int f() = 0; // 只有返回值不同
};
struct A : public I1, public I2
{
void f()
{
}
int f()
{
return 0;
}
};
#include <iostream>
using namespace std;
struct I1
{
virtual void f() = 0;
};
struct I2
{
virtual int f() = 0;
};
struct I1ex:public I1
{
virtual void f()
{
cout<<"I1ex"<<endl;
}
};
struct I2ex:public I2
{
virtual int f()
{
cout<<"I2ex"<<endl;
return 1;
}
};
struct A
{
public:
A(I1 *i1,I2 *i2):i(i1),j(i2)
{
}
void f1()
{
i->f();
}
int f2()
{
return j->f();
}
private:
I1 *i;
I2 *j;
};
int main()
{
A a(new I1ex(),new I2ex());
a.f1();
a.f2();
return 0;
}
struct I1
{
virtual void f() = 0;
};
struct I2
{
virtual int f() = 0; // 只有返回值不同
};
struct I2ex
{
virtual int f2() = 0;
};
class A : public I2
{
public:
void Init( I2ex* p )
{
m_p = p;
}
int f()
{
return m_p->f2();
}
private:
I2ex* m_p;
};
class B : public I1, public I2ex
{
public:
B()
{
m_a.Init( this );
}
void f()
{
// code
}
int f2()
{
// code
return 0;
}
private:
A m_a;
};
#include <iostream>
using namespace std;
struct I1
{
virtual void f(){}
};
struct I2
{
virtual int f(){ return 0; }
};
struct A : public I1, public I2
{
void f1()
{
I1::f();
}
int f2()
{
return I2::f();
}
};
int main()
{
A a;
a.I1::f();
a.I2::f();
a.f1();
a.f2();
return 0;
}
#include <iostream>
using namespace std;
struct I1
{
virtual double f(double x){ return 1.0; }
};
struct I2
{
virtual int f(int x){ return 0; }
};
struct A : public I1, public I2
{
double f(double x)
{
return 1.0;
}
int f(int x)
{
return 0;
}
};
int main()
{
I1 *pI1 = NULL, *pI1_1 = NULL;
I2 *pI2 = NULL, *pI2_2 = NULL;
A a;
I1 i1;
I2 i2;
pI1 = &a;
pI2 = &a;
pI1_1 = &i1;
pI2_2 = &i2;
pI1->f(2.0);
pI2->f(2);
pI1_1->f(2.0);
pI2_2->f(2);
return 0;
}
void f();
int f();
int main()
{
f();
}
#include <iostream>
using namespace std;
struct I1
{
virtual double f(double x) = 0;
};
struct I2
{
virtual int f(int x) = 0; // 只有返回值不同
};
struct A : public I1, public I2
{
double f(double x)
{
return 1.0;
}
int f(int x)
{
return 0;
}
};
int main()
{
return 0;
}