1. 继承方式

public      父类的访问级别不变

#include <iostream>
using namespace std;
class base
{   public: void printa()
{ cout <<"base"<< endl; } protected:  void printhello()
{ cout <<"helo"<< endl; } private:    void printnohello()
{ cout <<"no hello"<< endl; }
};
class derived : public base
{   public: void printb() { printhello(); } // void printc() { printnohello(); } //printnohello是父类的私有函数,不可访问
};
int main()
{   base a; a.printa(); //a.printhello(); //printhello是类derived的protected函数,不可访问。
}

2. sizeof 和 strlen 的区别

① sizeof 是一个操作符,strlen 是库函数。

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{   int a[] = {1, 2, 3, 4, 5}; cout << sizeof(a) << endl; //20
//  cout << strlen(a) << endl;  char b[] = {'a', 'b'}; cout << strlen(b) << endl; //6  cout << sizeof(b) << endl; //2
}

3. C中的 malloc 和C++中的 new 有什么区别

new、delete 是操作符,可以重载,只能在 C++中使用。

注意:malloc 申请的内存空间要用 free 释放,而 new 申请的内存空间要用 delete 释放,不要混用。

因为两者实现的机理不同。

4.简述C\C++程序编译的内存情况分配

C、C++中内存分配方式可以分为三种:

(1)从静态存储区域分配:内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在。速度快、不容易出错,因为有系统会善后。例如全局变量,static变量等。

一个 C、C++程序编译时内存分为 5 大存储区:堆区、栈区、全局区、文字常量区、程序代码区。

5. 面向对象的三大特征

① 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

覆盖,是指子类重新定义父类的虚函数的做法。

总结:作用

① 封装可以隐藏实现细节,使得代码模块化

6. 简述多态的实现原理

编译器发现一个类中有虚函数,便会立即为此类生成虚函数表vtable。虚函数表的各表项为指向对应虚函数的指针。编译器还会在此类中隐含插入一个指针 vptr指向虚函数表。调用此类的构造函数时,在类的构造函数中,编译器会隐含执行 vptr 与 vtable 的关联代码,将 vptr 指向对应的 vtable,将类与此类的 vtable 联系了起来。另外在调用类的构造函数时,指向基础类的指针此时已经变成指向具体的类的 this 指针,这样依靠此 this 指针即可得到正确的 vtable。

如此才能真正与函数体进行连接,这就是动态联编,实现多态的基本原理。

注意:一定要区分虚函数,纯虚函数、虚拟继承的关系和区别。牢记虚函数实现原理,因为多态C++面试的重要考点之一,而虚函数是实现多态的基础。

7. c++空类的成员函数

缺省的构造函数

注意:只有当实际使用这些函数的时候,编译器才会去定义它们。

8. 谈谈你对拷贝构造函数和赋值运算符的认识

两个不同之处:

① 拷贝构造函数生成新的类对象,而赋值运算符不能。

注意:当有类中有指针类型的成员变量时,一定要重写拷贝构造函数和赋值运算符,不要使用默认的。

9. extern 有什么作用

extern 标识的变量或者函数声明其定义在别的文件中,提示编译器遇到此变量和函数时在其它模块中寻找其定义。

10. 引用和指针区别

① 引用必须被初始化,但是不分配存储空间。指针不必在声明时初始化,在初始化的时候需要分配存储空间

它,

不仅仅是一个码

扫码关注

C++资源免费送

C++面试常见问题整理汇总(面试者必看哦!)相关推荐

  1. vscode 热门插件超实用插件汇总——vscode使用必看

    vscode 热门插件超实用插件汇总--vscode使用必看 VsCode官方插件地址: 汉化vscode 扩展使用 vscode 插件推荐!!! 配置类插件 VS code 主题集合(本人喜欢的) ...

  2. [深度学习] 面试常见问题+解析汇总

    什么是深度学习,与传统机器学习算法的区别? (1)传统机器学习算法,在一开始,性能(识别率)会随着数据的增加而增加,但一段时间后,它的性能会进入平台期.这些模型无法处理海量数据. (2)最近20年来, ...

  3. 数字IC前端面试常见问题整理

    一些面试的时候经常会被问到的问题,把还能记得的几个整理了一下. 目录 技术面问题 八股 项目 综合面问题 技术面问题 八股 数字电路中有哪几种逻辑电路,讲一下它们的区别. 组合逻辑,时序逻辑. 组合逻 ...

  4. 面试常见问题及回答 面试技巧及注意事项

    一.面试程序 不同的单位对面试过程的设计会有所不同,有的单位会非常正式,有的单位则相对比较随意,但一般来说,面试可以分为以下五个阶段: 第一阶段:准备阶段.准备阶段主要是以一般性的社交话题进行交谈,例 ...

  5. 哈工大计算机复试英文问题,哈工大计算机复试面试常见问题(08年面试经验)

    针对09年考哈工大计算机的学弟学妹们 管理员赵霖08年的亲身经历和询问到的其他同学的经历,希望能够给09年考哈工大的学弟学妹们带来一些帮助. 六. 复试面试.之前准备了一点英文材料,结果证明是徒劳的. ...

  6. 复试英语面试常见问题整理自用,考研复试英语问题汇总

    更多复试资料获取方式在文末,个人整理,完全免费! 更多复试资料获取方式在文末,个人整理,完全免费! Why did you choose our university? Firstly, it pro ...

  7. 2020秋招 C++软件开发/游戏开发 面试知识整理汇总

    鄙人的2020秋招目前已经基本结束,最终拿了六家公司的offer,在综合比较之后目前已经有了明确的偏向,那就是去某公司转行Java,至于原因有很多层,我即使在做了这个决定半年后还是不敢肯定这个决定是否 ...

  8. [机器学习] 面试常见问题+解析汇总

    机器学习面试题的分类 The first really has to do with the algorithms and theory behind machine learning. You'll ...

  9. Linux驱动开发 (面试常见问题整理)

    1.Linux设备驱动的分类 -> 字符设备    -> 块设备    -> 网络设备 字符设备指那些必须以串行顺序依次进行访问的设备,如触摸屏.磁带驱动器.鼠标等. 块设备可以用任 ...

最新文章

  1. iOS-禁止scrollview垂直方向滚动,只允许水平方向滚动;或只允许垂直方向滚动...
  2. 毕业十年后,我忍不住出了一份程序员的高考试卷
  3. Servlet 异常处理
  4. iphone 系统文件夹
  5. Sentinel隔离和降级
  6. Java LinkedList对象的get(int index)方法与示例
  7. java做报表_一步一步使用POI做java报表
  8. Python装饰器(二)
  9. sessionStrorage + localStorage+ cookes
  10. C语言程序设计(第三版)何钦铭著 习题4-11
  11. 物联网是自动化还是计算机,物联网:自动化家里的一切
  12. Python仿黑客帝国代码雨
  13. Java 求解买卖股票的xx时机含手续费
  14. Repeated DNA
  15. Java-基于SSM的健身后台管理系统
  16. python画蝴蝶结_Shapely用户手册
  17. Excel图表—标准正态分布概率分布图(概率密度函数图及累积概率分布图)的绘制
  18. LightTrack: Finding Lightweight Neural Networks for Object Tracking via One-Shot Architecture Search
  19. iOS保存视频、图片到相册
  20. (JAVA编成练习):递归的使用,简单的列子帮你理解递归。

热门文章

  1. 看到一个沙粒世界:再一次你好世界
  2. 使用Java EE和OIDC构建Java REST API
  3. jedis入门_Jedis入门
  4. @ParameterizedTest在@CvsSource中具有空值
  5. api签名_使用签名保护基于HTTP的API
  6. Java EE 8的前5个新功能
  7. spring boo_为您的下一个基于Spring的应用程序考虑使用spring-boot的原因!
  8. mongodb 性能测试_MongoDB性能测试
  9. 避免在ConcurrentHashMap.computeIfAbsent()中进行递归
  10. Oracle MAF中的LOV