CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

C++到底应该怎么学习?

想入坑学习C++开发的朋友,不知道你们的肝够吗?

下面我来简单介绍下我对C++的理解,同时介绍对如何C++进阶修炼学习路线的理解。

有不明白的小伙伴可以去下面去了解关于C++的具体知识!

0元带你完成服务器性能分析报告

C++是一门久负盛名的历史悠久的计算机编程语言。

C++ 从1980年一直不断和发展迭代到现在依然充满活力,它有40岁了。

举不胜举的项目由c++来实现

虽然很多领域有新的语言出现,试图代替C++,但作为工程师,C++依然值得我们花时间去学习。

C++ 是怎么样的语言?

C++其实是由传统的C,对面对象C++编程,泛型编程C++,STL 容器算法等组成的联合王国。

每一种语言内有自己不同的准则和特点。

PS:编程语言是为业务服务的。

再精通编程语言,但不能实现具体的业务需求都不是真的技术好。

应用领域

服务器端开发:很多游戏或者互联网公司的后台服务器程序都是基于C++开发的,而且大部分是linux操作系统

游戏:目前很多游戏客户端都是基于C++开发的,除了一些网页游戏可能不是,这个领域需要学习的东西就比较多,比如计算机图形、多媒体处理。

虚拟现实:这个领域一直在发展,目前VR眼镜比较火,需要大量基于这些的C++开发。

数字图像处理:像OpenCV的视觉识别等等

科学计算 在科学计算领域,FORTRAN是使用最多的语言之一。但是近年来,C++凭借先进的数值计算库、泛型编程等优势在这一领域也应用颇多。

0元带你完成服务器性能分析报告

网络软件 C++拥有很多成熟的用于网络通信的库,其中最具有代表性的是跨平台的、重量级的ACE库,该库可以说是C++语言最重要的成果之一,在许多重要的企业、部门甚至是军方都有应用。比如GOOGLE的chrome浏览器,就是使用C++开发。

分布式应用

在该领域,C语言是主要使用的编程语言。但是C++凭借其对C的兼容性,面向对象性质也开始在该领域崭露头角。

学习路线

第一阶段

掌握c/c++ 基本语法

标准库的简单使用

c++ 面向对象编程基本语法和概念

泛型编程的基本知识

数组、指针、内存操作

预编译 指令用法

关键字static是啥?

引用的用法、

构造函数、析构函数、拷贝构造、

new、delete 和 malloc、free 的区别、

访问限定符 public、private、protected、

推荐书目

《C++ Primer 第五版》

C 程序设计语言、C 缺陷与陷阱、C 专家编程、C 和指针。

第二阶段

良好的编码风格:

代码像房子一样,放的久了也是风化的,需要不断维护。好的编程风格,使房子的材料更优质,架构更合理。

深入理解常见的基本概念:

深拷贝和浅拷贝、友元函数、内联函数、继承、虚继承、钻石继承问题、同名覆盖问题、虚函数表、虚指针、虚函数、纯虚函数、接口、多态、重写、重载、函数重载、运算符重载、流类库和文件。

STL 容器和算法库的熟练适用

标准库接口的熟练适用

数据结构 :线性表、链表、堆栈、队列、树((BinTree、BST、AVL、RBtree、B+、B-)、图等等。(建议:先从简单入手+视频+原理+原理+实现+应用)

如果有编码方面的问题,可以去下面的网课里寻找一些相关资料!

0元带你完成服务器性能分析报告

推荐书目

Effective C++ 第三版

More Effective C++

Effective STL Meyers

Google C++ Code Standard

再看《C++ Primer 第五版》

大话数据结构、数据结构(清华大学严蔚敏)、数据结构与算法分析(机械工业版)。

重构

第三阶段

熟悉设计模式

泛型编程

理解对象的内部实现

熟悉常用外部库 如网络库,json库,等等。

函数模板、类模板,C++ 中对于异常的处理,对于继承和多态底层的理解,对于 virtual 底层的理解等。在C++ 中 boost 库八大智能指针的掌握与理解,其核心是理解并且剖析过相应的源码, 这三个是最核心的智能指针。STL 源码:对于 STL 中的容器剖析,常见容器有 list、vector、stack、queue、map 等,考察自动扩容的原理、map 的底层实现(RBtree),源码是必须手动至少剖析一遍的。

设计模式:

设计模式基本原则、依赖倒置和迪米特法则、单例模式_懒汉式和饿汉式、懒汉式遇上多线程问题、简单工厂模式、模板、命令、责任链、策略、中介、观察者、访问者、状态、解释器、迭代式模式等等。

主要是学习设计模式的思想、单例模式是必须写代码实现的,其他设计模式理解思想,作为了解内容,后台开发工程师与 mysql 打交道挺多的,也是面试常见问题之一。

0元带你完成服务器性能分析报告

推荐书目

泛型编程与STL。

STL源码剖析 (容器、迭代器、算法、函数对象乃至分配器的实现技巧)

C++Templates

C++设计新思维 Andrei Alexandrescu

第四阶段

C++扩展知识

常用库

在实际项目中,通常有些功能不需要重复造轮子,已经有十分完善的代码库可被拿来直接使用,所以我们要善于利用已有的资源。

日志库

ini库

json库

数据库库

网络库

业务特定的库

linux平台(unix)

Linux系统编程、网络编程:

进程环境、进程控制、信号和信号处理、多进程。

进程之间通信:文件、管道、FIFO管道、消息队列、信号量、共享内存、socket编程

线程、多线程、线程同步使用互斥量、线程同步使用读写锁。条件变量、信号量

文件I/O文件管理、流I/O。

特别要理解这几个进程之间通信的原理、特征优缺点。

另外,想要学好C++,书籍是一方面,合适的网课跟严谨的态度也是必不可少的,我给大家推荐我目前正在看的网课。

0元带你完成服务器性能分析报告

学习C++的道路总不是一帆风顺,之所以和大家说了这么多,是想告诉大家,只要你有决心和意志,好好学C++并没有那么难。要成为一名程序猿,进入软件开发行业也没有那么难哦。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容