赞
踩
虽然编程语言有很多,但在需要顶级性能的项目上,基本都会使用C++。尤其是机器人、自动驾驶、AI等嵌入和实时系统,都是C++的主要应用方向,在这种层面,几乎没有竞争者。比如百度的搜索引擎、推荐引擎等核心产品,腾讯几乎所有产品都是C++开发。
C++的性能固然强大,但它的范式和机制也给开发者造成很大的负担:
一是 项目开发效率低 ;
二是 学习困难,不好上手 ;
这也导致企业要想招一个合格的C++程序员十分困难!其实,C++的难点主要集中在“位操作”和“指针”,很多人纵使学的非常用心也依旧不能深入理解,搞得非常痛苦。
C++基础(3个月)
1、面向对象的三大特性:封装、继承、多态
封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是:代码重用。而多态则是为了实现另一个目的——接口重用。
2、类的访问权限:private、protected、public
3、类的构造函数、析构函数、赋值函数、拷贝函数 ## 4、移动构造函数与拷贝构造函数对比
4、C++11新出的,可以不用管。
5、深拷贝与浅拷贝的区别
浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存
6、空类有哪些函数?空类的大小?
构造函数、析构函数、拷贝构造函数、赋值函数。大小1字节
7、内存分区:全局区、堆区、栈区、常量区、代码区
8、C++与C的区别
a.属性
new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持c。
b.参数
使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸
分配失败
new内存分配失败时,会抛出bac_alloc异常。malloc分配内存失败时返回NULL。
9、struct与class的区别
默认的继承访问权。class默认的是private,strcut默认的是public。
“class”这个关键字还用于定义模板参数,就像“typename”。但关键字“struct”不用于定义模板参数
10、struct内存对齐
步骤一:前面单元的大小必须是后面单元大小的整数倍,如果不是就补齐
步骤二:整个结构体的大小必须是最大字节的整数倍
11、new/delete与malloc/free的区别
malloc开辟空间类型大小需手动计算,new是由编译器自己计算;
(2)malloc返回类型为void*,必须强制类型转换对应类型指针,new则直接返回对应类型指针;
(3)malloc开辟内存时返回内存地址要检查判空,因为若它可能开辟失败会返回NULL;new则不用判断,因为内存分配失败时,它会抛出异常bac_alloc,可以使用异常机制;
12、内存泄露的情况
内存泄露情况
13、sizeof与strlen对比
sizeof() 是可用来计算字符串的总长度,包括\0,而strlen()计算不包含\0的字符串的长度,遇到 \0 就会被截断。
sizeof()指出整个数组的长度;而strlen()返回的是存储在数组中的字符串的长度,而不是数组本身的长度。
int 一个元素为4个字节, char一个元素为1个字节。
13.1、指针与引用的区别
指针与引用
14、野指针产生与避免
野指针
15、多态:动态多态、静态多态
静态多态:在系统编译期间就可以确定程序将要执行哪个函数
动态多态是利用虚函数实现运行时的多态,只有在运行到这里的时候才能确定接下来会跳转到哪一个函数。
16、虚函数实现动态多态的原理、虚函数与纯虚函数的区别
多态原理
17、继承时,父类的析构函数是否为虚函数?构造函数能不能为虚函数?为什么?
虚函数
18、静态多态:重写、重载、模板
19、static关键字:修饰局部变量、全局变量、类中成员变量、类中成员函数
20、const关键字:修饰变量、指针、类对象、类中成员函数 21、extern关键字:修饰全局变量
22、volatile关键字:避免编译器指令优化
23、四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
25、右值引用
26、std::move函数
move函数
27、四种智能指针及底层实现:auto_ptr、unique_ptr、shared_ptr、weak_ptr
28、shared_ptr中的循环引用怎么解决?(weak_ptr)
29、vector与list比较
30、vector迭代器失效的情况
31、map与unordered_map对比
32、set与unordered_set对比
33、STL容器空间配置器
所以,学习c++是挺难的,but认真学也是可以的
加油!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。