• C++常见面试题汇总


    1.c和c++的区别?

       c是面向过程;c++是面向对象,面向对象的三大特征:封装、继承、怎么理解这三个呢?

      封装:相对隐藏一些细节重要的东西,让用户直接调用方法就可以;

       继承:继承就是可以利用已有类的方法;不用再重新写;节省开销;

    多态:多态的实现重要条件:继承和虚函数;多态指的是:不同的子类实现相同的方法会产生不同的行为;但是没有虚函数的存在,调用子类的方法永远时调用父类的方法;

    2.c++中指针和引用的区别?

       指针:指针是新开辟一段内存空间;它的值是可以改变;而且可以为空

      引用:是变量的别用,和原变量共用一个空间内存,而且必须初始化,并且初始化后不能改变;

    3.结构体和类的区别,以及结构体和共同体的区别?

      c++中结构体默认的成员都是共有成员,而类中为定以属性类型,则默认为私有属性;

     结构体;可以使用多个变量类型,而共同体同一时间仅可以使用一种类型;

    4.#define和const的区别?

      #define 没有类型定义,不占用内存,而且在预处理阶段进行宏替换;

      const:const需要定义类型,占用内存;

    5.重载和重写。隐藏(重定义)三者的区别?

       重载:函数名相同但是传递的参数不同;

    重写:子类对父类函数的重写;但是在虚函数下参能起作用;

    重定义:子类对父类函数的重写但又不是虚函数,必须强制类型转换;

    6.new、delete、malloc、free的关系?

      在C中只能只用malloc;C++中都可以使用;molloc只分配内存地址;而NEW不仅分配内存地址而且返回void型指针;

    7.delete和delete【】用过?

       在标准数据类型的释放时;不会报错;内存已经帮忙管理;比如数组;

    但是自定义数据类型,比如类,就会出现编译错误;

    8.虚函数和纯虚函数?

    虚函数:是为了子类覆写基类的函数的条件;

    而纯虚数:基类只写声明,在子类写实现;

    9.STL库有哪些容器?

    vector;string;list;stack;queue队列;以及堆还有map\set很少有;

    向量:可以进行索引读取数据,也可以在尾部头部进行插入删除数据;是连续的空间;

    list:是非连续的空间;插入和删除时间复杂度较低;但是无法索引获取;

    队列:先进先出;

    10.描述一下const和static?

        const:定义的变量的值无法改变;

    static:静态变量,是限制变量和函数的作用与;相当于局部全局变量,在模块内的,可以被其他函数调用,但是模块外不行;

    12.堆 和 栈的区别?

       栈分配内存是系统自动分配内存;

    堆:需要手动分配和释放;

    13.#include<>和#include ""的区别?

    《》是系统自带的库或者动态链接的库文件;引号的文件是创建的头文件或者cpp文件

    14.定义和声明的区别?

    声明不分配内存;定义分配内存;

    15.C++的编译与运行的四个阶段?

    预处理-编译-汇编-链接;分别做了什么?

    预处理:包含头文件和宏替换;编译将头文件编译成二进制代码;汇编;将代码编译成二进制代码;链接:生成可执行文件;

    16.map和set的使用在C++中?

    map和set的底层实现主要通过红黑树来实现

    17.指针和数组的区别?

    18.针织数组和数组指针?

    19.指针函数和函数指针?

  • 相关阅读:
    CAD Exchanger SDK 3.22.0 for 安卓Android Crack
    【Java 进阶】集合概述
    MATLAB实战 | 粮食储仓的通风控制问题
    一对多映射处理
    centos软件设置开机启动的方式
    U盘格式化后 容量变小如何解决
    【干货】RPA流程块之间如何传递数据?
    A3纸内容分2页打在A4纸上
    深度学习基础知识数据 数据预处理transforms流程讲解
    【C++】缺省参数与函数重载
  • 原文地址:https://blog.csdn.net/qq_52859223/article/details/126657164