如何构建派生类?
现有类A
class A
{
char p[3];
virtual void visit(){};
}
class B
{
A a;
do();
}
void B::do()
{
a.visit();
}我希望能把C派生自A,D派生于B,在D中访问父类方法do是调用的是C中自己的visit,请问怎样实现?是这样吗?
class C::public A
{
void visit()
}class D::pulblic B
{
}
现有类A
class A
{
char p[3];
virtual void visit(){};
}
class B
{
A a;
do();
}
void B::do()
{
a.visit();
}我希望能把C派生自A,D派生于B,在D中访问父类方法do是调用的是C中自己的visit,请问怎样实现?是这样吗?
class C::public A
{
void visit()
}class D::pulblic B
{
}
解决方案 »
- [GDI+]怎么在Bitmap类打开的图片上画图
- 谁能帮我讲解一下目标跟踪算法 mean-shift算法的原理
- Richedit 中如何正确获取ActiveX控件的位置
- 如何在MFC对话框中添加一个计时器? 急急急···
- 参数问题
- 请问,有什么好办法判断系统是处于Winlogon桌面还是用户桌面?
- 本人欲利用应用程序对IIS日志进行在线分析,统计,但在打开日志的时候出现共享异常。请问各位大虾有没有好的解决方案?
- net send 开发包
- ADO中如何修改一个recordset中某个字段的名字?
- 关于图像处理问题
- 我一直是用Delphi开发的,但目前公司业务需要,要用VC开发产品,各位推荐下好的VC学习网站
- 求救!关于对话框,ListView, 右键弹出菜单的编程问题。在线等待!!!!!
CLASS C连实例化的机会都没有。
一点关系都没有,我认为不能实现,
要实现就
class B
{
public:
B(){pa= NULL};
A* pa;
do();
}
void B::do()
{
if(a)
a->visit();
}这样你才有可以实现
class D : public B
{
D(){pa = new C;};
}
class B
{
A* pa;
do();
}class D:public B
{
D(A* p){pa = p};
}
那么构造D时只要传入C型的指针就行了。