1. 引用和指针
    • 指针是一个实体,需要分配内存空间,而引用只是一个别名,不需要分配内存空间
    • 指针可以有多级,而引用只能有一级。
    • 指针和引用的自增运算不一样,指针是指向下一个空间,而引用是引用的变量值增加
    • sizeof引用得到引用所指对象的大小,而sizeof指针得到指针的大小。
  2. static的用法和介绍
    • 隐藏:未加static修饰的全局变量和函数具有全局可见性。
    • 保持变量内容的持久。
    • 默认初始化为0
    • 在类中使用static
      • 函数体内的static变量作用范围为该函数体。
      • 类中的static变量修饰的成员函数属于整个类,这个函数不包括this指针,因为只能访问类的static成员变量
      • static成员函数不能被virtual修饰,static成员不属于任何对象或实例。
  3. 构造函数和析构函数类相关
    1. 构造函数为什么不能为虚函数?析构函数为什么要为虚函数?
      • 虚函数相当于一个指向虚函数表的指针,这个指针存在于对象的内存空间中,如果构造函数是虚函数,那么在对象初始化之前就应该存在。但是此时对象还未初始化,因为构造函数不能是虚函数
      • 当派生类对象申请了内存空间,并在析构函数中对这些内存进行释放,如果析构函数采用非析构,那么删除基类指针指向的派生类的对象的时候,就不会发生动态绑定,因为只会调用基类的析构函数,而不会调用派生类的析构函数。
    2. 构造函数和析构函数中可以调用虚函数吗?
      • 不提倡在构造函数和析构函数中调用虚函数
      • 构造函数和析构函数中调用虚函数都不使用动态绑定。如果在其中调用虚函数,那么运行的是为构造函数和析构函数自身定义的版本。
      • 父类对象在子类对象之前进行构造,此时子类部分的数据成员还未进行初始化。因此调用子类的虚函数是不安全的。
      • 析构函数用来销毁一个对象,在销毁一个对象的时候,先调用子类的析构函数,然后调用基类的析构函数,故在调用基类的析构函数的时候,派生类的数据成员已经被销毁,在调用子类的虚函数没有任何意义。
    3. 构造函数析构函数是否可以抛出异常
      1. c++只会析构已经完成的对象,在构造函数中抛出异常,控制权转出构造函数之外,因而在对象b的构造函数中发生异常,对象b的析构函数不会被调用,因此发生泄漏
      2. 如果从析构函数抛出异常,而且没有在当地进行捕捉,那么析构函数执行不完全。

c++面经积累<1>的更多相关文章

  1. 《Effective Java》学习笔记——积累和激励

    从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段 ...

  2. 【知识积累】try-catch-finally+return总结

    一.前言 对于找Java相关工作的读者而言,在笔试中肯定免不了遇到try-catch-finally + return的题型,需要面试这清楚返回值,这也是这篇博文产生的由来.本文将从字节码层面来解释为 ...

  3. 项目积累(三)CSS

    公司不是专门做网站的,偶尔会接到客户让修改前端,有时候和让头疼,自己浏览器兼容问题处理不好. 慢慢积累吧. 先贴出来一些前端代码吧,如下: <div class="test" ...

  4. 【知识积累】SBT+Scala+MySQL的Demo

    一.背景 由于项目需要,需要在Sbt+Scala项目中连接MySQL数据库.由于之前使用Maven+Java进行依赖管理偏多,在Sbt+Scala方面也在不断进行摸索,特此记录,作为小模块知识的积累. ...

  5. 积累一下SQL

    开篇先自我检讨一下,写了博客几年以来首次试过连续两个月没出过博文,有客观也有主观原因,但是最近这年里博文数量也越来越少,博文的质量也每况日下.希望自己一直能坚持下来,多写写博文,这月尽量多写几篇来弥补 ...

  6. Oracle----SQL语句积累 (Oracle 导入 dmp文件)

    Oracle----SQL语句积累 (Oracle 导入 dmp文件) Oracle SQL PL  导入dum文件 1.数据库DBA权限: 注意:这个是在cmd命令行中直接输入,不需要进入Oracl ...

  7. 记一些之前忘记积累的问题(fiddler 学习、XP系统不能上网、XP不能装fiddler、注册表快速找到)

    记一些之前忘记积累的问题: fiddler学习:http://www.cnblogs.com/kingwolf_JavaScript/archive/2012/11/07/FiddlerUI.html ...

  8. python积累

    python积累 一.逐渐积累 python逐渐积累 http://www.cnblogs.com/lx63blog/articles/6051526.html python积累_2 http://w ...

  9. 分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据

    分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前 ...

  10. 【知识积累】BufferedImage类实现图片的切分

    一.引言 如何实现图片分割?若有园友用到这个模块,使用Java的BufferedImage类来实现,图片切分也可以作为一个小工具积累起来,以备不时之需. 二.代码清单 package com.lees ...

随机推荐

  1. 小tips:HTML DOM中的children和childNodes属性

    childNodes 属性 标准的,childNodes 属性返回节点的子节点集合,以 NodeList 对象.包括HTML节点,所有属性,文本.可以通过nodeType来判断是哪种类型的节点,只有当 ...

  2. vue.js插入dom节点的方式

    html代码: <div id="app"></div> js代码: var MyComponent = Vue.extend({ template: '& ...

  3. 洛谷P2286 [HNOI2004]宠物收养场

    题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领 ...

  4. CentOS7 离线安装MySQL

    1.删除原有的mariadb 不然安装报错 rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs 2. 下载RPM安装包 在https://dev.mys ...

  5. Openlayer3之C++接口在javaScript的封装使用

    0.写在前面: 1)涉及的关键词定义: 传入:JavaScript向CAPI传值 传出:CAPI向JavaScript传值 2)关于类和结构体的封装,需要严格执行内存对齐,以防止读取越界,但是避免不了 ...

  6. MyBatis-Plus初步使用

    在使用mybatis的过程中,我们会发现需要自己写很多的mapper和mapper.xml配置文件,很多时候会写到相当多的重复代码,特别是普通的增删改查,这样不仅会影响我们的开发效率,也会使得代码变的 ...

  7. HDU 1722 Cake (数论 gcd)(Java版)

    Big Number 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1722 ——每天在线,欢迎留言谈论. 题目大意: 给你两个数 n1,n2 . 然后 ...

  8. Angular的MVC理解--节自Adam Free的Pro angularv2

    1. 定义 Angular的核心是采用MVC模式,即Model-View-Controller,也即MVW,Model-View-Whatever. 如下图所示,借助于ASP.NET的MVC模式来描述 ...

  9. c/c++ 图的最短路径 Dijkstra(迪杰斯特拉)算法

    c/c++ 图的最短路径 Dijkstra(迪杰斯特拉)算法 图的最短路径的概念: 一位旅客要从城市A到城市B,他希望选择一条途中中转次数最少的路线.假设途中每一站都需要换车,则这个问题反映到图上就是 ...

  10. PHP中的Session工作原理

    一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理,今天在这里做一下梳理. 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1 ...