最近论坛有人讨论父类调用子类函数的问题,现整理如下:
问题:
class A
{
};
class B:public A
{
public:
void speek();
};
除了强制类型转换之外,能够用A调用speak()吗?
方法一、 用模板类
代码如下:
#include "stdafx.h"
#include <stdio.h>
template <typename T>
class A
{
public:
A()
{
pT = (T *) this;
}
test()
{
pT->speek();
};
T* pT;
};
class B : public A<B>
{
public:
void speek()
{

本文介绍了两种在不使用虚函数的情况下,父类能够调用子类成员函数的方法:一是利用模板类,二是借助成员函数指针。通过实例代码详细展示了这两种实现方式。
最低0.47元/天 解锁文章
1193

被折叠的 条评论
为什么被折叠?



