C++自学路线

本文提供了一份详细的C++自学路线,涵盖了C++基础、计算机网络、操作系统、网络编程、数据结构与算法、数据库以及项目实践。强调了C++的基础知识如面向对象、内存管理、多态,以及网络的TCP/IP模型、HTTP协议和数据库的InnoDB引擎等。还提到了数据结构与算法的重要性,并推荐了相关书籍和项目实践。
摘要由CSDN通过智能技术生成

建议:先看第八总结——我的个人总结。

一、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()返回的是存储在数组中的字符串的长度ÿ

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值