64,649
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
class A
{
public:
class B
{
public:
virtual void operate()=0;
};
public:
B* GetB() {
return m_b;
}
void SetB(B* b) {
m_b = b;
}
private:
B* m_b;
};
class C : public A::B
{
public:
void operate(); //这里继承父类的operate不用写成void A::B::operate();
};
void C::operate() //operate实现部分,被实现了就不是纯虚函数了
{
printf("C 实现虚函数 operate()后的输出\n");
}
int main()
{
A a;
a.SetB(new C());
A::B *b = a.GetB();
b->operate();
return 0;
}
#include "stdio.h"
class A
{
public:
class B
{
public:
virtual void operate()=0;
};
};
class C : public A::B
{
public:
void operate(); //这里继承父类的operate不用写成void A::B::operate();
};
void C::operate() //operate实现部分,被实现了就不是纯虚函数了
{
printf("C 实现虚函数 operate()后的输出\n");
}
int main()
{
C *c = new C();
c->operate();
return 0;
}
class C :public A::B, A
{
public:
void operate() override;
};
void C::operate()
{
printf("C 实现虚函数 operate()后的输出");
}
加A::B干嘛