C++,从入坑到放弃···

编程技术宇宙

共 1659字,需浏览 4分钟

 · 2021-10-02

知乎上有人提问:如何在一个月内提高C++水平:

虽然大家常常调侃C++是一门永远也精通不了的语言,但题主有Java基础,之前又初学过C++,一个月的时间强行突击还是可以把C++常用的东西拿下,应对面试问题不大。至于那些炫技和装逼用到的冷门技能,工作以后再慢慢学也不迟。

编译器推荐使用Visual Studio,功能强大,后续有很多项的学习可以依靠VS进行。

第一周:C基础

  • Day1: HelloWorld,学习基础数据类型int/short/long/char/float/double,类型转换,学习输入输出,学习宏定义及其展开
  • Day2: 学习使用调试器,学习单步调试执行程序,学习在调试器下观察变量变化,学习在调试器下查看进程的内存数据。
  • Day3: 学习数组,学习typedef用法
  • Day4: 学习指针,理解什么是变量的地址,通过调试器观察指针内容,理解指针的内涵。
  • Day5: 学习函数,函数传参,默认参数,直接传参和指针传参;学习函数指针。
  • Day6: 学习结构体、联合体、枚举,通过调试器观察它们在内存层面到底是什么表现形式,学习sizeof用法
  • Day7: 写一个简单程序,把上面内容都用上,在调试器下打开汇编执行页面,把源代码和汇编指令对照起来,观察并理解编译型强类型语言执行的本质,观察函数调用和执行过程中栈的变化,把变量、数组、结构体、参数这些编程语言层面的东西理解透彻。

第二周:面向对象基础

  • Day8: 学习class编写,理解封装性,学习成员访问权限,学习构造函数析构函数、成员初始化方式。在调试器下,观察构造函数和析构函数执行时机。
  • Day9: 学习继承、函数重载、运算符重载,学习命名空间
  • Day10: 学习new/delete/delete [],学习string的使用,学习深拷贝与浅拷贝
  • Day11: 学习多态,虚函数,并在调试器下观察对象结构、内存对齐,虚函数表指针、虚函数表,理解虚函数原理。
  • Day12: 学习friend、const、static、explicit关键字用法
  • Day13: 学习四大类型转换,学习异常处理
  • Day14: 学习泛型编程基本操作

第三周:STL

  • Day15: 学习vector、list用法,学习迭代器使用
  • Day16: 学习map/stack/queue用法
  • Day17: 学习STL常用算法:find、find_if、count、sort、swap、replace···
  • Day18: 学习仿函数
  • Day19: 结合STL源码,深入学习迭代器的各种姿势
  • Day20-21: 结合STL源码,深入学习vector、list、map底层基本原理

第四周:C++11

  • Day22: 学习自动类型推断、auto、decltype关键字用法
  • Day23: 学习智能指针,shared_ptr、weak_ptr,结合源码学习智能指针底层原理
  • Day24: 学习using关键字、for each循环、nullptr
  • Day25: 学习临时对象、右值引用、转移构造函数
  • Day26: 学习使用线程库进行多线程编程、线程同步
  • Day27: 学习lambda表达式、学习tuple
  • Day28: 学习哈希表unordered_map和unordered_set使用

准备面试

  • Day29: 题主说算法和数据结构还算熟悉,建议用C++刷一天LeetCode,找找写代码的感觉
  • Day30: 背一背C++相关的八股文面试题,比如这个:

你可以点击文末左下角的阅读原文一键直达哦~ https://www.zhihu.com/question/451327108/answer/2073547650

更详细的C/C++后端学习路线图,参考之前的这篇:

Linux C/C++后端开发学习路线

浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报