文档章节

C++知识点

 悠米海
发布于 2014/06/12 22:44
字数 963
阅读 10
收藏 1
点赞 0
评论 0

#define SECONDS_PER_YEAR  (60*60*24*365)UL

 

#define MIN(A,B) ((A) <=(B) <= (A):(B))

 

static关键字,静态变量、静态函数

 

Const 只读

 

Volatile 告诉编译器变量是会意外改变的,不能使用寄存器备份

能修饰const、指针,两次volatile的指针值是不一定会相同的

 

比特操作:

&  0全是0,全1才是1

|  11,全0才是0

~ 取反 10,逢01

^ 异或 操作相同为0,不同为1

<< 左移 左边移动抛弃右边补0

>> 右移 右边的移动抛弃左边补0

例子:A^B^B = A

 

函数模板与类模板

函数模板由函数调用时编译器自动完成,类模板实例化时由程序显式指定

 

Tcp/IP建立过程

三次握手:Client => Server=>等待(SYN_SEND)

  Server=>Clien=>等待(SYN_RECV)

  Client=>Server=>完成(ESTABLISHED)

 

winSock建立步骤

服务器:socker()建立套接字,绑定(bind)并监听(listen),用accept()等待客户端连接

客户端:socker()建立套接字,连接(connect)服务器,连接上后使用send()recv(),读写数据,直至数据交换完毕,closesocket()关闭套接字

服务器:accept()发现有客户端连接,建立一个新的套接字,自身重新开始等待连接。新套接字使用send()recv(),读写数据,直至数据交换完毕,closesocket()关闭套接字

 

selectepoll

select是所有连接轮询操作,epoll是对活跃连接操作;select最大量接受操作系统内核限制,epoll不是;

 

动态链接库

载入时类似于本地函数明确调用则需要dlllib描述文件;运行时动态链接可以通过LoadLibraryLoadLibraryEx载入DLL

 

C++面向对象的三个基本特征

封装、继承、多态(实现方式覆盖和重载)

 

纯虚函数和虚函数

纯虚函数vitual func() = 0,构建的类不能生成实例,抽象类,只能用作基类

 

友元函数的优缺点

有点:能直接访问类的私有保护对象,提升效率

缺点:破坏了类的封装,有安全漏洞

 

线程和进程

线程是最小的执行单元,一个进程包含多个线程进程有独立的地址空间,进程崩溃对其他进程没影响;线程有自己的堆栈和局部变量,没有单独的地址空间,一个线程死掉进程就会出现问题;进程切换耗费的资源比线程切换大;

 

进程间通信

无名管道(pipe)、高级管道(popen)、有名管道(named pipe)、信号量、消息队列、信号、共享内存、Socket

 

线程间通信

全局变量、消息队列、临界区、互斥区、事件、信号量

 

进程和线程同步方式

临界区、互斥区、事件、信号量

 

tcpudp区别

Tcp传输控制协议需要建立可靠地连接,三次握手,速度慢;

Udp:用户数据报协议,不与对方建立连接直接发送数据,可靠性差,速度快;

 

tcp/ip的状态

TCP连接:

1.CLOSED2.LISTEN3.SYN_SENT4.SYN_RCVD5.ESTABLISHED

TCP关闭

1.FIN_WAIT_12.FIN_WAIT_23.CLOSE_WAIT4.LAST_ACK5.CLOSING6.TIME_WAIT

 

程序什么时候应该使用线程,什么时候单线程效率高

1.耗时的操作使用线程,提高应用程序响应 

2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。

3.多CPU系统中,使用线程提高CPU利用率 

4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独 立的运行部分,这样的程序会利于理解和修改。 其他情况都使用单线程。

 


© 著作权归作者所有

共有 人打赏支持
粉丝 12
博文 93
码字总数 37069
作品 0
浦东
程序员
c语言基础学习11_项目实战:IDE(集成开发环境)

============================================================================= ============================================================================= 涉及到的知识点有: 一......

黑泽明军
01/29
0
0
C++总结 — C++知识导论图

C++知识导论图 以上就是C++的知识的一点总结,当然这也只是延伸到面,并没有延伸到点. 具体更加细致的知识点需要你更加努力的学习. 上面的知识点我基本也 有对应的博客,特别是面向对象那块的...

Dawn_sf
01/14
0
0
VS2010/MFC编程入门教程之目录和总结(鸡啄米)

鸡啄米的这套VS2010/MFC编程入门教程到此就全部完成了,虽然有些内容还未涉及到,但帮助大家进行VS2010/MFC的入门学习业已足够。以此教程的知识为基础,学习VS2010/MFC较为深入的内容已非难事...

weixin_40647819
05/23
0
0
4-C++远征之起航篇-学习笔记

c++教程起航篇 我们会讲C++那些事,C++与C语言的关系。 C++诞生于贝尔实验室。 C++之父: 本贾尼·斯特劳斯特卢普 C++社区排行榜 最新排行,c++排名第三,Python排名第四 C++语言的应用领域:...

天涯明月笙
07/20
0
0
大神告诉你学好这几点,你就学会了C语言

很多小伙伴在初学C语言的时候完全没有什么概念,完全不知道怎么去学怎样才能掌握这门语言的重要知识点。 今天小编就来总结一下学习C语言过程中四大重点吧 ! (一)C语言要学到什么程度才算差...

诸葛玥
05/25
0
0
如何自学成为C/C++程序员大牛

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
05/11
0
0
Java程序员如何高效而优雅地入门C++

Java程序员如何高效而优雅地入门Cpp,由于工作需要,需要用C++写一些模块。关于C++ 的知识结构,虽说我有过快速学习很多新语言的经验,但对于C++ 我也算是老手,但也还需要心生敬畏,本文会从...

小欣妹妹
04/23
0
0
MFC开发IM-自绘按钮控件,给按钮设置背景图片

MFC 基础知识:对话框背景添加图片和按钮Button添加图片 很长时间没有接触MFC相关的知识了,我大概是在大二时候学习的MFC相关知识及图像处理,现在由于要帮个朋友完成个基于C++的程序,所以又...

golddaniu
05/10
0
0
C语言/C++程序员编程学习代码训练—精讲

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
03/23
0
0
大神有话说之c++,还在迷茫的朋友可以来看一下

C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Window...

悟空_b201
05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对基于深度神经网络的Auto Encoder用于异常检测的一些思考

一、前言 现实中,大部分数据都是无标签的,人和动物多数情况下都是通过无监督学习获取概念,故而无监督学习拥有广阔的业务场景。举几个场景:网络流量是正常流量还是攻击流量、视频中的人的...

冷血狂魔
15分钟前
0
0
并发设计之A系统调用B系统

A-->B A在发送请求之前,用乐观锁,减少对B的重复调用,这样一定程度上是幂等性。 比如A系统支付功能,要调用B系统进行支付操作,但是前端对"支付"按钮不进行控制,即用户会不断多次点击支付...

汉斯-冯-拉特
36分钟前
0
0
HTTP协议通信原理

了解HTTP HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则。计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求信息和服务。 HTTP使用...

寰宇01
58分钟前
0
0
【Java动态性】之反射机制

一、Java反射机制简介

谢余峰
59分钟前
1
0
Centos 6.X 部署环境搭建

1.Linux学习笔记CentOS 6.5(一)--CentOS 6.5安装过程

IT追寻者
今天
0
0
博客即同步至腾讯云+社区声明

我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=8vy9bsmadbko...

xiaoge2016
今天
1
0
大数据教程(3.1):Linux系统搭建网络YUM源服务器

博主在前面的2.5章节讲述了linux系统本地YUM服务器的搭建和httpd轻量级静态网站服务器的安装,本节博主将为大家分享内网环境中搭建自己的网络YUM服务器的全过程。如果大家对本地YUM服务器还不...

em_aaron
今天
1
0
蚂蚁技术专家:一篇文章带你学习分布式事务

小蚂蚁说: 分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在这几年越来越火的微服务架构中,几乎可以说是无法避免,本文就围绕分布式事务...

Java大蜗牛
今天
1
0
新的Steam应用将拓展服务项目

导读 未来几周,Steam将推出两个免费的应用程序Steam Link和Steam Video。这两个应用程序都旨在拓展Steam平台的业务和便利性。 即将开放的Steam Link应用程序最先提供了Android测试版,它将允...

问题终结者
今天
0
0
golang 第三方包的使用总结

golang 第三方包的安装的方法: 1. go get 安装 $ go get github.com/gin-gonic/gin 注意:执行go get 命令需要先安装git命令,并配置git全局变量。 2. 源码包安装 由于国内网络问题,很多时...

科陆李明
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部