| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C/C++面试题分享 -> 正文阅读 |
|
[C++知识库]C/C++面试题分享 |
目录 1、C++面向对象的三大特性是什么?谈谈你对这三大特性的认识 2、#include <filename.h>和#include “filename.h”有什么区别? 3、C++程序内存的五大分区是哪五个?每个分区用来存放什么样的内容? 9、了解C++11标准中的内容吗?都知道哪些C++11特性? 一年一度的“金九银十”的跳槽季开始了,今年的秋季校园招聘也在如火如荼地进行中,在此给大家分享一些常见的C++笔试面试题,以供参考。 VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/125529931 1、C++面向对象的三大特性是什么?谈谈你对这三大特性的认识? ? ? ? 封装,继承和多态,这是最基本最常见的面试题。
2、#include <filename.h>和#include “filename.h”有什么区别?? ? ? ? 这两种方式与编译器编译时搜索头文件的路径有关系。
3、C++程序内存的五大分区是哪五个?每个分区用来存放什么样的内容?? ? ? ? 在C++中,内存分成5个区,他们分别是堆、栈、全局/静态存储区、常量存储区和代码区:
4、指针与引用的区别?? ? ? ? 指针在指向某个对象后,可以更改其指向,即可以再指向其他对象。而引用一旦确定引用关系后,是不能修改指向的。引用必须在定义的时候就确定引用关系,引用类型的变量在定义时必须初始化。
5、struct结构体和class类的区别是什么?? ? ? ?比如如下的结构体:
struct结构体和class类的区别如下:
6、C++中const的使用场景有哪些?? ? ? ??const关键字的使用场景如下: 1)const可以用来修饰变量,变量值是不可修改的,比如:
2)可以用来修饰函数的参数,函数中不得修改变量的值,比如:
3)可以用来修饰函数返回值的类型,返回值是不可修改的,比如:
4)可以用来修饰类的成员函数,则该函数不能内不能修改类成员变量的值,比如:
7、inline内联函数与宏的异同点有哪些??? ? ? ? ?实现两个int变量求和的内联函数如下:
? ? ? ? 求两个整型数值最大值的宏:
? ? ? ? 函数调用时会有调用的开销,比如参数的入栈出栈操作、保护线程和恢复现场操作等,所以引入了内联函数,避免了函数调用的开销。内联函数实现不宜过长,一般不超过10句代码。 ? ? ? ? 对于内联函数和宏,共同点是,在编译时编译器会直接将它们的实现部分直接替换到调用处。内联函数和宏有很多区别:
8、STL模板库的相关问题? ? ? ?STL标准模板库已经广泛地应用到C++程序中,STL相关内容也是面试常考的问题。 8.1、常用的STL容器有哪些?容器中有哪三个重要的概念?? ? ? ?STL中常用的容器有vector、list、map、deque、set、queue等,所有的容器可以见下图: 8.2、算法函数你知道吗?如何提高stl容器的遍历效率?? ? ? ? 常用的算法函数有sort、count、count_if、find、find_if、remove_copy和remove_copy_if等。这些算法函数比使用迭代器去for循环遍历容器要快很多,在数据量比较大的情况下效率比较高,可以有效地提高STL容器的遍历效率。 8.3、哪两种容器中的数据是有序存放数据的?有什么好处?? ? ? ? set和map中存放的数据是有序的,数据的有序排列有利于提升查找的效率。 8.4、vector和数组有什么区别?? ? ? ? vector使用的是一段连续的内存,这点和数组是类似的,但vector是可变长的“数组”,当内存空间不够时会自动扩充内存长度。正因为其使用的时候一段连续的内存,所以可以向数组那样使用数组下标去访问。 ? ? ? ? vector和数组类似,拥有一段连续的内存空间。vector申请的是一段连续的内存,当插入新的元素内存不够时,通常以2倍重新申请更大的一块内存,将原来的元素拷贝过去,释放旧空间。因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存块的拷贝,时间复杂度为o(n)。 8.5、vector和list有什么区别?? ? ? ? vector和list主要有以下几方面的区别
9、了解C++11标准中的内容吗?都知道哪些C++11特性?? ? ? ? 重量级的C++11标准推出已经很多年了,新标准中推出的部分已经被大家广泛的采用,特别是一些大型的开源代码会大量的采用C++11标准中的内容,比如Chromium浏览器内核开源项目、WebRTC开源项目等。很多面试官比较喜欢问C++11标准相关的内容。
? ? ? ? ?下面简单罗列一下部分常用的C++11标准特性:
10、你用过什么设计模式?? ? ? ? 设计模式在项目代码中会或多或少的用到,面试时可能会问到对设计模式的掌握情况。 ? ? ? ? 设计模式有20多种,但很多模式大家可能都没使用过,这里只要大概列举几个用过的设计模式即可,比如单例模式(单例类似于全局变量)、简单工厂模式(根据不同的类型创建不同的子类,比如实现截图时直线、曲线、矩形、椭圆等不同图形绘制)、观察者模式(需要关注的通知的去注册一下,会收到通知回调)。
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:41:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |