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. 【代码笔记】Web-Javascript-Javascript typeof

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. Android为TV端助力 史上最简单易懂的跨进程通讯(Messenger)!

    不需要AIDL也不需要复杂的ContentProvider,也不需要SharedPreferences或者共享存储文件! 只需要简单易懂的Messenger,它也称为信使,通过它可以在不同进程中传递m ...

  3. JNI C反射调用java方法

    前面记录了调用C的学习笔记,现在来记录一下C反射调用Java的笔记.JNI开发学习之调用C方法 Android开发中调用一个类中没有公开的方法,可以进行反射调用,而JNI开发中C调用java的方法也是 ...

  4. Android面试题总结(不定期更新、附答案)

    1.Activity的启动模式? activity一共有4种启动模式:standard.singleTop singleTask .singleInstance standard:(标准模式)默认的就 ...

  5. Oracle 表锁与解锁

    1. 查询 Oralce 被锁定的表信息 select object_name,machine,s.sid,s.serial#from v$locked_object l,dba_objects o ...

  6. Ext 日期格式化

    //日期格式化 Date.prototype.Format = function (fmt) { var o = { , //月份 "d+": this.getDate(), // ...

  7. 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI-BOX2D

    layout: post title: 2018-05-11-机器学习环境安装-I7-GTX960M-UBUNTU1804-CUDA90-CUDNN712-TF180-KERAS-GYM-ATARI- ...

  8. Linux中Root密码破解

    1.开机后在选择菜单时按下e进入编辑模式 2.选择linux16这一行,在行末尾添加 rd.break 3.然后Ctrl+x执行.然后进入shell界面: 4.设置密码: 1.重新挂载根目录为读写模式 ...

  9. c/c++ const关键字

    const 在星号的右边:不可以改指针的指向,可以用指针改里面的值 int * const p; const在星号的左边:可以改指针的指向,不可以用指针改里面的值 int const *p; cons ...

  10. c/c++ 线性表之单向链表

    c/c++ 线性表之单向链表 线性表之单向链表 不是存放在连续的内存空间,链表中的每个节点的next都指向下一个节点,最后一个节点的下一个节点是NULL. 真实的第一个节点是头节点,头节点不存放数据, ...