如下例:

class Base
{
public:
    virtual foo() = 0;
protected:
    virtual ~Base(){};
};

class Derived
{
public:
    Derived(string str) : _str(str){}
    virtual foo(){ //.. }
protected:
    string _str;
}

这时,如果有
Base *p = new Derived("some string");
//...
delete p;

这时,不能调用析构函数

为何virtual析构函数不能是protected?相关推荐

  1. 条款七 为多态基类声明virtual析构函数

    1.如果基类中的成员函数是virtual类型的,其继承类中相应的函数也是virtual类型,并且基类对象的引用指向继承类对象时, 基类就可以调用继承类函数,否则调用的是基类函数 class base ...

  2. Effective C++ .07 virtual析构函数的提供

    主要讲了, 1. virtual析构函数的作用与调用顺序 2. 使用时机,并不是使用了继承就要把基类的析构函数变为虚函数(virtual),只有当用于多态目的时才进行一个virtual析构函数的定义. ...

  3. C++ virtual 析构函数

    copy自:http://zxjgoodboy.blog.sohu.com/61482463.html 在此基础上稍作修改 C++中虚析构函数的作用 我们知道,用C++开发的时候,用来做基类的类的析构 ...

  4. virtual析构函数(作用)

    virtual析构函数的作用? . 大家知道,析构函数是为了在对象不被使用之后释放它的资源,虚函数是为了实现多态.那么把析构函数声明为vitual有什么作用呢?请看下面的代码: 1 #include ...

  5. 读书笔记_Effective_C++_条款七:为多态基类声明virtual析构函数

    严格来说,多态分为编译时多态和运行时多态,编译时多态是函数的重载,而运行时多态则是迟绑定技术,即根据基类指针或引用的实际指向来决定采取何种行动,一般来说,多态特指运行时多态.下面我们来举有关C++多态 ...

  6. effective C++读书笔记--【条款07:为多态基类声明virtual析构函数】

    问题 base class的指针p,指向一个derived class,如果: base class带着一个non-virtual析构函数: derived class对象经由这个base class ...

  7. virtual析构函数的作用?

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  8. Effective C++条款7:为多态基类声明virtual析构函数

    要点: 带多态性质的基类或者class中有virtual函数,就应该将析构函数声明为virtual,例如 class TimeKeeper { public:TimeKeeper();~TimeKee ...

  9. C++将类的构造函数、析构函数声明为private或者protected的用途

    如果将构造函数.析构函数声明为private或者protected,表示不能从类的外部正常调用构造和析构函数了. 这种用法的通常使用的场景如下: 1.如果不想让外面的用户直接构造一个类A的对象,而希望 ...

最新文章

  1. 论文: Generating Software Test Data by Evolution---自己觉得很好的句子----(1)introduction
  2. 小马哥spring编程核心思想_Spring核心思想理解
  3. python 追加到字典_扫描器篇(三)之python编写基于字典的网站目录探测脚本
  4. 产品配件类目税目分类_我国消费税税目种类有哪些?
  5. ann matlab,人工神经网络ann及其matlab仿真.ppt
  6. php 利用个人邮箱,利用 Composer 完善自己的 PHP 框架(二)——发送邮件
  7. 我是一个工资涨不上去的失败程序员
  8. ios打开html页面关闭当前页面跳转,【已解决】怎么从iOS原生界面跳转回到html页面呢...
  9. java poi jar包下载_poi.jar下载-poi.jar包 3.8/3.9/3.10 免费版 - 河东下载站
  10. 面试字节跳动后台开发(实习)
  11. 计算机用户被锁定 蓝屏,电脑提示文档已被administrator锁定怎么办
  12. 如何选择正确的Node框架:Express,Koa还是Hapi?
  13. SAP PS 项目编码配置 OPSJ/OPSK
  14. 在使用计算机结束时,计算机使用完毕后应将显示器的电源关闭对吗?
  15. IO系统性能之二:缓存和RAID如何提高磁盘IO性能
  16. docker安装kong和konga详细说明
  17. zabbix主动监控和被动监控
  18. 闭关修炼(八)反射机制
  19. 英语12个月份的缩写
  20. Win32汇编(SMU—C嵌入汇编)

热门文章

  1. java 文件大小,如何在Java中获取文件大小
  2. 读称题写出执行结果html,C++(II)13-14(2)试题B - 往年试卷
  3. eclipse经常高占用_高可用系统的设计指南
  4. C# 自定义sqlserver表值函数
  5. buck电路_Buck电路的多角度分析
  6. 中南大学MATLAB变量专题/矩阵的建立1-3/4
  7. 金融大规模毁灭性武器--高频统计套利
  8. 微信小程序-跟学笔记
  9. src refspec main does not match any
  10. Windows核心编程_远线程方式实现Dll注入