当前位置:   article > 正文

2025c/c++方向该如何就业?分享一站式学习路线_cpp就业学习路线

cpp就业学习路线

写在开篇

最近几年计算机就业市场是迷一样的操作,每年都会在不同的方向反复横跳。曾经的大热方向,可能转年就会预冷。这样的风向给了我们很多目前马上临近毕业的同学带了不少的焦虑。

这份文档的整理,目的就是为了帮助大家缓解焦虑,带给大家关于c/c++方向的一站式学习内容,包含了c/c++基础通用技术栈,面试八股文,各方向就业分析以及对应方向技术栈的梳理,还有项目推荐、简历该如何书写、面经分享和offer参考分析。希望能给还在坚持的c/c++道路上的同学,带来一些帮助和鼓励。

一、c/c++方向基础核心技能篇

c/c++基础核心技能部分包括:c/c++语言以及编程四大件。不管大家以后从事c/c++的哪个技术方向,对于这一块的基础部分大家都是需要熟练掌握的。

1.c/c++语言

1.1 C语言

(主要掌握其语法,其中最重要的莫过于指针和内存管理)

  • 变量
  • 条件
  • 循环
  • 字符串
  • 数组
  • 函数
  • 结构体
  • 指针
  • 内存管理

1.2 C++语言

(是区别于C语言的,相当于在C语言里面加入了面相对象的特性)

  • 封装、继承与多态
  • 特性
  • 泛型
  • 模版
  • STL

关于c/c++语言,大家在学习的时候不要花费太多的时间,扎扎实实的过一遍即可,不要沉迷于精通语言本身,这样的做法对于我们做开发是没有意义的。

2.编程四大件

数据结构与算法、计算机网络、操作系统、设计模式

2.1 数据结构与算法

基础数据结构类型:

  • 字符串
  • 链表
  • 二叉树
  • 队列
  • 哈希

基本算法

  • 查找
  • 排序
  • 遍历
  • 动态规划

这一块建议大家多刷题。

2.2 计算机网络

基础的部分主要就是指的tcp/ip协议栈的学习与掌握。虽然是基础部分,但是可以说是面试必问。谁不会谁尴尬!

  • ARP协议
  • IP协议
  • ICMP协议
  • TCP协议
  • UDP协议
  • DNS协议
  • HTTP协议
  • HTTPS协议

2.3 操作系统

  • 进程和线程的相关原理(原子性、并发、锁)
  • 内存相关原理(内存分布、内存调度)

2.4 设计模式

倒不是说所有的设计模式都要会,但是常见一些,大家还是需要掌握的。

  • 单例模式
  • 工厂模式
  • 代理模式
  • 策略模式
  • 模版方法模式
  • 观察者模式

最后在补充一个

PS:Linux工程管理

  • makefile/cmake/configure
  • 分布式版本控制git
  • Linux系统运行时参数命令
  • vscode gdb调式

基础核心大致上就是这些,在大家后续的面试过程中,会占据一部分的比重。因为内容考点比较固定,所以就有了对应面试八股文。那第二部分和大家分享的就是面试八股文篇

二、面试八股文篇

这里主要分为两部分,一部分是文档篇,另一部分是视频篇。文档的面试八股文会整理的比较多,近几年的都有做一个整理归纳,陆陆续续应该有1500多道了,这里就简单的陈列一部分。视频版面试题制作会比较费时间,目前整理出的有c/c++语言相关常见的面试题型和c++标准库的面试题,后续会继续更新。大家可以根据自己的学习喜好,选择性学习。

1.八股文-文档篇

1.1 类中的重要函数

1.1.1 构造函数和析构函数的作用?

1.构造函数只是起初始化值的作用,但实例化一个对象的时候,可以通过实例去传递参数,从主函数传递到其他的函数里面,这样就使其他的函数里面有值了。

规则,只要你一实例化对象,系统自动回调用一个构造函数就是你不写,编译器也自动调用一次。

2.析构函数与构造函数的作用相反,用于撤销对象的一些特殊任务处理,可以是释放对象分配的内存空间;特点:析构函数与构造函数同名,但该函数前面加~。

析构函数没有参数,也没有返回值,而且不能重载,在一个类中只能有一个析构函数。 当撤销对象时,

编译器也会自动调用析构函数。

每一个类必须有一个析构函数,用户可以自定义析构函数,也可以是编译器自动生成默认的析构函数。 一般析构函数定义为类的公有成员

1.1.2 类什么时候会被析构?
  1. 对象生命周期结束,被销毁时;
  2. delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类析构函数是虚函数时;
  3. 对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。
1.1.3 构造函数和析构函数可以调用虚函数吗?
  1. 在C++中,提倡不在构造函数和析构函数中调用虚函数
  2. 构造函数和析构函数调用虚函数时都不使用动态联编,如果在构造函数或析构函数中调用虚函数,则 运行的是为构造函数或析构函数自身类型定义的版本;–> 不会呈现出多态
  3. 因为父类对象会在子类之前进行构造,此时子类部分的数据成员还未初始化,因此调用子类的虚函数 时不安全的,故而C++不会进行动态联编;–> 实际上调用的是父类的函数
  4. 析构函数是用来销毁一个对象的,在销毁一个对象时,先调用子类的析构函数,然后再调用基类的析 构函数。所以在调用基类的析构函数时,派生类对象的数据成员已经销毁,这个时候再调用子类的虚函 数没有任何意义。
#include <iostream>
using namespace std;

class A
{
public:
    A()
    {
        Function();
    }
    virtual void Function()
    {
        cout << "A::Function" << endl;
    }
};

class B : public A
{
public:
    B()
    {
        Function();
    }

    virtual void Function()
    {
        cout << "B::Function" << endl;
    }

};

int main()
{
    B b;
    return 0;
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

输出:

A::Function

B::Function

1.1.4类成员初始化方式?构造函数的执行顺序 ?为什么用成员初始化列表会快一些?

1.成员初始化列表:在构造函数的定义中使用初始化列表来对类的成员进行初始化。语法为在构造函数的参数列表后使用冒号(

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/920696
推荐阅读
相关标签