Fork me on GitHub

C++面试

记录自己遇到的一些C++基础面试题目

基础部分

  1. overridefinal的区别

    override是用来标识派生类需要重写的方法;
    final是用来标识派生类不能重写的方法

  2. sizeof的用法
    首先应该明确sizeof是一个C语言关键字而不是一个函数,用于计算数据空间的字节数,其计算发生在编译时刻。

    sizeof运算符的结果部分依赖于其作用的类型:

    • char或者类型为char的表达式执行sizeof运算,结果为1
    • 引用执行sizeof运算结果得到被引用对象本身所占空间的大小
    • 指针执行sizeof运算得到指针本身所占空间的大小
    • 解引用指针执行sizeof运算得到指针所指向的对象所占空间大小,指针不需要有效
    • 数组执行sizeof运算得到整个数组所占空间大小,等价于对数组中所有元素各执行一次sizeof运算并求和。注意:sizeof运算不会把数组转化成指针来处理
    • string对象或者vector对象执行sizeof运算只返回该类型固定部分的大小,不会计算对象中的元素占用了多少空间
类型 大小
int *p sizeof(p) = 4;//sizeof(*p) 相当于sizeof(int)
int a[10] sizeof(a) = 4*10
char a = “hello” sizeof(a) = 6; //结尾处有\0
double (a)[3][6]; sizeof(a) = 4; //a为指针
sizeof(a) = 72; // \a为有3*6个元素的数组
sizeof(*a) = 24; // \*a为数组一维的6个指针
sizeof(**a) = 4; // \**a为数组一维的第一个指针
sizeof(**a) = 8; // ****a为double类型的变量

算法

本文标题:C++面试

文章作者:阿西BUG

发布时间:2018年08月27日 - 22:08

最后更新:2018年08月31日 - 10:08

原始链接:http://blog.92yu.win/2018/08/27/C-面试/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

阿西BUG wechat
福利干货铺(YM-TALK)-- 互联网福利干货大集合
Enjoy it ? Donate for it ! 欣赏此文?求鼓励,求支持!
>