C++常见面试简答题 || 指针和引用 / 静态绑定动态绑定 / 多态 / STL常见容器 / 智能指针 / C++11新标准

1、引用和指针的区别

A:定义一个引用变量和定义一个指针变量的汇编指令一模一样,区别是引用变量必须要初始化,指针没有强制要求
B:通过应用变量修改内存的值和通过指针修改指向内存的值,汇编指令一样,区别是引用更加安全,而指针有可能解引用一个空指针或野指针
C:指针有一级和多级,而引用只有一级的引用

2、解释静态绑定和动态绑定

静态绑定:指的是函数调用,在编译期间就已经是明确的函数调用。
动态绑定:指的是通过指针或者引用,调用同名覆盖方法,运行时从指定的对象头部取vfptr,间接访问vftable,在vftable中取虚函数的地址,进行函数调用,用指针或者引用调用virtual函数一定会发生动态绑定

3、解释什么是多态

动态的多态:在继承结构中,用基类的指针或者引用,指向从该基类继承的派生类对象,调用派生类和基类的同名覆盖方法,基类指针指向哪个派生类对象,就会调用哪个派生类对象的方法,这个就叫做动态的多态,其本质原理就是动态绑定。

静态的多态:主要指的是函数重载和模板,重载方法的调用和模板的实例化都是在编译阶段就要确定好的。

4、请列举你所熟悉的容器并做简要功能描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值