我看到了一段程序:
class CFatherView
{
CFatherView(int a,bool b);
int c;
……
}Class CSonView:public CFatherView
{
CFatherView(a,b){c=0;}
}
这样可以么?构造函数又不是虚函数。请大家指点。
class CFatherView
{
CFatherView(int a,bool b);
int c;
……
}Class CSonView:public CFatherView
{
CFatherView(a,b){c=0;}
}
这样可以么?构造函数又不是虚函数。请大家指点。
解决方案 »
- getRegionData()函数在win7 aero效果下失效,有无替代方案?
- 请教OpenGL的一个旋转问题,多谢了!急急
- 关于ADO连接问题??
- 请问关于GetComputerName()函数中的两个参数
- 在MDI编程中,如何把MainFrm撤分成2列,我想在左边窗口放TreeView,右边窗口放子窗口,该怎么做呢?
- 高手指教:一个关于网络中不同机器上的两个进程之间的数据通信问题。谢谢!
- UDP通过代理或NAT之类进行IP或者Port映射,失效时间为多少?
- 请问在Dialog编辑中,如何使控件绑定在一起?
- 求救,在线等!!!
- VC++找工作怎么这么难!!!
- 大家好,先给大家拜个早年,问一个VC菜鸟问题
- 存表怎么存不进去了?
{
CFatherView::CFatherView(a,b){c=0;}
}
是不是应该这样啊?
要是还是不够的话,把需要重载的函数搬到其他类里面去,然后根据构造函数传进来的RTTI信息动态创建这个类……
典型的示例就是CDocTemplate……
virtual constructor的相关章节!
{
CSonView(int a, bool b) : CFatherView(a,b){ c = 0; };
} : CFatherView(a,b) 是串联构造,表示构造函数 CSonView(int a, bool b) 应该串联调用 CFatherView(a,b) 而不是 CFatherView()
那么它的构造函数也应该是 a(参数);以后多交流!
如果你重载了,那么CSonView a;时,用重载的构造函数来初始化对象。不是只有虚函数才能被重载。虚函数是为了实现多态性,运行时多态性。