cbase.h:

 #ifndef CBASE_H

#define CBASE_H
#include<iostream>
using std::cout;
using std::endl;
class CBase{
public:
    virtual void show();
};
#endif // CBASE_H

cbase.cpp:
#include"cbase.h"
void CBase::show()
{
    cout<<"CBase"<<endl;
}

cderived.h:
#ifndef CDERIVED_H
#define CDERIVED_H
#include"cbase.h"
class CDerived:public CBase{
private:
    void show() override;
};
#endif // CDERIVED_H

cderived.cpp:
#include"cderived.h"
void CDerived::show()
{
    cout<<"CDerived"<<endl;
}

main.cpp:
#include <iostream>
#include"cderived.h"
using namespace std;

int main()
{
    CBase* pBase=new CDerived;
    pBase->show();
    dynamic_cast<CDerived*>(pBase)->show();
    delete pBase;

    CDerived* pDerived=new CDerived;
    pDerived->show();
    static_cast<CBase*>(pDerived)->show();
    delete pDerived;
return 0
}
程序运行会报错:dynamic_cast<CDerived*>(pBase)->show();pDerived->show();
说是私有的不可调用
可见编译器只看到了他所看到的,要从编译器的角度看问题。只是把指针是什类型就是什么类型。理解(*(p->vptr)[n])(p,...)

												

最新文章

  1. 2.Java基础之Runtime对象
  2. Longest Absolute File Path
  3. linq 日期分组统计
  4. IOS竖屏应用单个页面横屏的解决办法
  5. 每天一个linux命令--more/less
  6. 29、shiro框架入门
  7. 将正确的 HTTP 头转发给后端服务器的一些问题
  8. text输入框中按下enter键时阻止刷新页面
  9. 【UVA 11383】 Golden Tiger Claw (KM算法副产物)
  10. 接收对 http://192.168.1.18:8001/ObtainData/Service 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。
  11. [转载]CentOS6.4+Mono3.0.7+Jexus5.2.5
  12. squid+stunnel+用户密码认证的三种玩法
  13. MYSQL5.6数据库ZIP安装以及VS中使用注意事项
  14. 怎么用MATLAB产生FPGA所需的hamming窗系数
  15. 附录A application.properties配置项
  16. connect设置连接超时
  17. NFV论文集(三)综述
  18. JavaScript-年月日转换12小时制
  19. SqlServer日常积累(三)
  20. mina 通讯框架

热门文章

  1. Mysql 的事务隔离级别
  2. tornado web开发
  3. HP P2xxx/MSA SMI-S Provider
  4. android分辨率适配
  5. geotrellis使用(三十二)大量GeoTiff文件实时发布TMS服务
  6. thinkCMF----路由跳转
  7. 【巷子】---webpack配置非CMD规范的模块
  8. MyEclipse无法创建servers视图:Could not create the view: An unexpected exception was thrown
  9. 七种RAID技术
  10. Oracle HA 之 测试RAC的功能