新手如何入门C/C++后台开发
一、C/C++语言常用语法
精通C/C++语言没什么实际用途
(一)类(Big Three)
1、析构函数/拷贝构造函数/赋值运算符
2、多态是怎么实现的?虚表
3、函数指针:如何定义?
4、宽字符如何定义?wchar_t ch = L\"A\";wchar_t *ch = L\"hello\"
其中 char *p = \"中国人\";有安全隐患,中文字符是两个字节。
#6 g : @ C y x # W你好
##你好
(二)C11/14常用语法
1、初始化列表:花括号
2、auto/decltyp4 9 G g E 5 g D $e:类型推导(编译A 8 z T 2时推导)
3、for-each语法
std::map<int,std::string> m7 E O ; g;
std::map<d 7 j .int ,std:R { n g y:stringE C Z>::iterator iter = m.begin();
foreach(const auto& iter:m)
{
iter.first......
}
4、右值引用 => 移动构造函数 // std::P s A ` z k smove / std::forward / emplace_baN { * ! t / dck
int a = 3;
int&& r = 3;
5、defaul? C = //, V + S std::function 函数对象/参数绑定
11、std:T B _ M:chrono 时间库
12、lamda 表达式
推荐学习:fileZilla源码 https://svn.filezilla-project.org/svn/FileZilla3/trunk
熟悉一种开发工具
开发 -- 编译 -- 调试(Visual Studio)
Linux系统下了解makefile规则,cmake
二、B D K z # [ y }熟悉一个/多个操作系统平台提供的API接口
文件IO(目录)
线程API
进程API
线程同步
时间函数
fwrite // chmod // loc0 M Kaltime(非线程安全)
操作系统的API一般长期内都不会发生变化,一: x D _ c旦生成,终生受用。
推荐书籍:Linux系统编程(拉姆、祝洪凯)
三、so7 L i S l Xcket网络编程
telnet ip port
常用函数
socket函数 // bind函数 // accept函数(阻塞、非阻塞) // recv函数 // send函数 // shutdown函数
close函数 // select函数 // connect函数(同步、异步)
req , zcv函数返回0或者1代表是什么意思
强烈推荐书籍:TCP/IP网络编程(尹圣雨、金国哲)
常用IO复用技术
select、poll、c x c y x c 6 ;epoll(水平模式、边缘模式)、IOCP
网O ( O m L 6 3络通信模型:问答模式(http请求、浏览器) \\\\ 一个客户端一个线程 \v 3 T\\\ 多个客户端多个线程
推荐学习过程:
1、学习上面的常用函数及技术;
2、学习一到二个开源项目中网络通信部分(redis单线程模式)
四、数据库基本原理
数据库操作命令:show databv 7 A d = m L , Tases \\e : A a n T ) %\\ show tables \\\\ desc tablename 增删改查等
索引的用法
SQL 优化
explain
五、其他
12 A K ,、算法 \\\\ 数据结构
2、操作系统原理(PE / ELF文件)进程地址空间的内存 \\\\ 函数调用
3、习惯养成:编码风格(优化)
4、github源码学习(即时通信、LastBattl j 1 ( x h #e最后一战(日志服务))
另外还有一些关于c++ Linux后台服务器开发的一些知识点分享:A * d q k X [ [Linux,Nginx,MySQL,Redis,P2P,K8S,Docker,TCP/IP,X S d ^协程,DPDK,webrtc,音视频等等视频。
喜欢的朋友可以后台私信【1】获取学习视频