之前每次我刷题的时候都是结合黑马的c++学习文档在typora上面进行补充,在搜相关答疑点的时候,发现有博主这样记录,翻阅了一下,感觉很适合细节补充,以下是以后的学习记录,欢迎一起学习交流。
科目记录
c++
①
union类型的变量在定义时是可以被初始化的,
定义如下union类型 union Test { int a; float b; }; Test test = {1};
test变量的定义可以初始化,初始值的类型必须是union中第一个成员的类型
②
#include<bits/stdc++.h>
using namespace std;
class CA
{
public:
virtual void f1()
{
cout<<"CA::f1( )"<<endl;
f2();
}
void f2()
{
cout<<"CA::f2( )"<<endl;
}
};
class CB : public CA
{
public:
void f1()
{
cout<<"CB::f1( )"<<endl;
f2();
}
void f2()
{
cout<<"CB::f2( )"<<endl;
}
};
class CC:public CB
{
public:
virtual void f2()
{
cout<<"CC:f2()"<<endl;
}
};
int main()
{
CC c;
CA *pA = &c ;
pA->f1();
return 0;
}
A
CB::f1() CC::f2()
B
CB::f1() CB::f2()
C
CB::f1() CA::f2()
D
CA::f1() CC::f2()
③const的位置
const修饰类的成员函数,一般放在函数体后,如 void
fun() const;
常成员函数声明:形如 void funcName(参数表)const;
对于常成员函数需要注意:
1、其实现部分也要带const关键字;
2、不能修改类的成员变量,不能调用类中没有被const修饰的成员函数(即只能调用常成员函数);
④
a.成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
b.覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
位运算
①
1. 使特定位翻转
设有数01111010,想使其低4位翻转,即1变0,0变1.可以将其与00001111
进行“异或”运算,即:
01111010
^00001111
01110101
运算结果的低4位正好是原数低4位的翻转。可见,要使哪几位翻转就将与其进行∧运算的该几位置为1即可。
2 ~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0,会对a的所有位都进行按位取反操作
假设int a = 3; 二进制表示为 00000000 00000000 00000000 00000011
低四位就是 0011, 需要将其翻转为 1100,
选项A为按位或运算, 有一个为1即为1,得到的结果是低四位=1111,不能实现按位翻转。
选项B为按位与运算,都为1才为1,得到的结果是低四位=0011,不能实现按位翻转。
②关于位域
type 是int型占4个字节 flags需要38位,因为unsigned int 是4个字节36位不够38位,向上取整所以4*2共8字节
flagsEx需2位,unsigned int 4个字节够用就占4个字节。 4+8+4
sizeof针对类型:
a,b输出的都是struct data 的大小,所以a=b=4+8+4=16字节;
c输出的是指针的大小 4字节
③字节对齐问题
这我们说,所有的成员在分配内存时都要与所有成员中占内存最多的数据类型所占内存空间的字节数对齐。
假如这个字节数为 N,那么对齐的原则是:理论上所有成员在分配内存时都是紧接在前一个变量后面依次填充的,
但是如果是“以 N 对齐”为原则,那么,如果一行中剩下的空间不足以填充某成员变量,即剩下的空间小于某成员变量的数据类型所占的字节数,则该成员变量在分配内存时另起一行分配。
下面再来举一个例子,大家觉得下面这个结构体变量data占多少字节?
struct STUDENT { char a; char b; char c; char d; char e; int f; }data;
首先最长的数据类型占 4 字节,所以是以 4 对齐。然后 a 占 1 字节,b 接在 a 后面占 1 字节,c 接在 b 后面占 1字节,d 接在 c 后面占 1 字节,此时满 4 字节了,e 再来就要另起一行。f 想紧接着 e 后面分配,但 e 后面还剩 3 字节,小于
int 类型的 4 字节,所以 f 另起一行。
④除余问题
%取余运算符只能用于整形;A%B——A、B都必须为int类型
⑤文件问题
5.1
数据结构
留白
计算机网络
- 在骨干网布线中,一般采用光缆和同轴电缆。
1.由于光缆的扩展距离较长,抗电磁干扰能力强,数据传输速率高,适合题中的实际物理环境要求,因此选择光缆作为连接缆线比较合适。
2.同轴电缆比UTP(非屏蔽双绞线)有更好的屏蔽特性、抗干扰能力和更大的带宽,通常多用于基带传输。目前同轴电缆常用在有线电视系统中,在计算机网络中运用较少。现代电缆能达到几个GHz的带宽。
3.屏蔽双绞线最大传输距离为100米
同轴电缆和光缆的区别
1. 应用范围上有区别。同轴电缆现多用于能源传输及低端数据信息传输(如电话);光缆多用于数据传输。
2. 传输速度,光缆比同轴电缆快很多。
- 数据交换方式
1)电路交换又称为 线路交换
电路交换的概念源于电话系统交换。传统电话网由传输线路,程控交换机和电话机组成,处于网络结点的程控交换机用来完成主、被叫用户之间传输链路的选择、建立,形成一条主叫至被叫的物理电路,通话结束时拆除该物理电路,这种交换方式称为电路交换方式。电路交换的基本过程包括呼叫建立、通话和释放链路3个阶段。
电路交换具有实时、信道独占、延时小等优点,但是电路交换技术的缺点也很明显,如网络资源利用率低、通信效率不高等。
2)报文交换
报文交换技术是一种存储转发技术,它没有在两端通信设备间建立一条物理线路。发送设备将发送的信息作为一个整体(又被称为报文),并附加上目的地址,交给交换设备。交换设备接收该报文,并存储在缓存中,等到有合适的输出线路时再把该报文转发给下一个交换设备。当路由器接收到报文以后会对报文进行处理,查看其目的路由器地址,然后用路由算法算出到达目的地的最佳路径后将报文送往下一路由器,经过若干个交换设备的存储、转发后,该报文到达目的地。报文交换技术适用于非实时的通信系统,如公共电报收发系统。
报文交换具有线路利用率高、能够建立报文优先级等优点,但是也存在着延迟大的缺点。
3)分组交换
分组交换源于数据通信,它解决了数据通信的通信线路资源共享问题。数据通信的特点是业务突发性高、可靠性要求高,而对实时性要求不严格。
分组交换方式的工作过程是分组终端将用户要发送的数据分割为长度固定的数据分组,每个分组都有一个分组头,包含了控制信息和路由信息。采用分组交换时,同一个报文的多个分组可以同时传输,多个用户的信息也可以共享同一物理链路,因此分组交换可以实现资源共享,并为用户提供可靠、有效的数据服务。它克服了电路交换中独占线路、线路利用率低的缺点。
分组交换分为
1.数据报分组交换,数据报分组交换没有连接
2.虚电路分组交换,虚电路分组交换要建立连接(逻辑连接)。虚电路交换又分为临时虚电路交换和永久虚电路交换
例
3.两端用户传输文件,应属于下列 OSI 的哪一层处理? 应用层
应用层是对软件提供接口一使程序能使用网络服务,而这里的网络服务包括文件传输等
表示层是将应用层的信息格式化
会话层是建立通信连接的
传输层是向高层用户提供端到端的考考的透明传输服务(但传输的数据段不是文件)
4.一般来说,PSTN (公共交换电话网)由 本地回路、交换局、干线这些部分组成。
5. IPV6
IPv6的单播地址等级结构:
第一级:全球路由选择前缀 48位
第二级:子网标识符 16位
第三级:接口标识符 64位
A
IPV6 将一些非根本性的和可选择的字段移到了固定协议头之后的扩展协议头
B
IPV6 的地址长度定为 128 位
C
128 位的子网地址空间可以满足主机到主干网之间的三级 ISP 的结构
D
IPV6 支持 IPSec 协议,这就为网络安全性提供了一种基于标准的解决方案
6.当个人计算机以拨号方式接入Internet时,必须使用的设备是 调制解调器
也就是ASDL,拨号需要用到的 电子信号分为模拟信号,数字信号 我们使用的电话线路传输的是模拟信号,而PC机之间传输的是数字信号。
ADSL
调制解调器是指使用电话线上网,需要专用的猫(Modem),俗称“猫”,现在基本都是“光猫”了,在运营商和用户之间需要有这个东西来调制解调信号
7.BGP协议
internet骨干网中的路由器通过BGP协议传输数据,
BGP协议使用传输层的协议与端口 TCP 端口179
8.易混淆的转发端口问题
- 一个交换机接收到一帧,其目的地址在它的 MAC 地址表中查不到,交换机应该()
A 丢弃该帧
B 该帧的目标 MAC 被置为广播 MAC 地址,然后向所有的端口转发
C 向除了来的那个端口外的所有其它端口转发
D 向除了来的端口外的所有其它端口发起 ARP 请求
交换机特性,找不到MAC对应,会转发到其他端口,因为有水平分割,所以不会发给发来的端口 c√
ARP请求和回复只能由主机完成,所以D×
.交换机转发 交换机转发前收到的数据帧中包含了目的MAC地址, 接收方收到后不需要回应。
.ARP请求 数据链路层需要通过MAC地址进行寻址,但是从上层传下来的IP数据报中并没有,所以发送ARP请求分组来获得目的主机的MAC地址。接收方需要回应。
arp 找mac
补充交换机转发的细节
当一个帧到达时,交换机会查找端口和MAC地址的映射表,
如果有,则从某一端口发送出去。
如果没有,则从非进入端口广播出去。
如果目标和源在同一端口,那么交换机则不做任何事,简单的丢掉这个帧而已。
传输二进制数字信号需要的带宽比模拟信号所需要的带宽小 小
1.首先明白带宽是什么?就是表示传输信号的频率宽度,那么信号的波动范围越大肯定需要频率更宽的度来表示。
2.数字信号只有01,所以只需要两种宽度就可以表示。区间小,所以带宽就小。
10.网络层基础易忘的功能
- 表示层向上对应用层服务,向下接受来自会话层的服务。 表示层为在应用过程之间传送的信息提供表示方法的服务,它只关心信息发出的
结构
语法
语义。- 表示层的作用是使通信的应用程序能够解释交换数据的含义,这些服务包括
数据压缩
数据加密
数据描述
摘自《计算机网络自顶向下方法》
- 协议问题
① X.25协议是数据终端设备(DTE)和数据电路终接设备(DCE)之间的接口规程。
②下列哪一种陈述是正确的?( a )
A. 系统上的每一个网络接口都有一个 IP 地址
B. IP 地址中有 16 位描述内容
C. 位于美国的 NIC 提供具有唯一性的 32 位 IP 地址
D. 类地址仅用于多投点传送
NIC(Internet Network Information Center) Internet IP地址由NIC(Internet
Network Information Center)统一负责全球地址的规划、管理;同时由Inter
NIC、APNIC、RIPE等网络信息中心具体负责美国及全球其它地区的IP地址分配。
D类地址又分为三种类型:即专用地址、公用地址和私用地址;
其中专用地址(224.0.0.0-224.0.0.255)用于网络协议组的广播,
公用地址(224.0.1.0-238.255.255.255)用于其它组播,
私用地址(239.0.0.0-239.255.255.255)用于测试。NIC只是分配一个地址块,而不是具体的ip
D类地址用于多点广播
- 转发器又被称为中继器或放大器,执行物理层协议,实现电气信号的“再生”, 在物理层扩展局域网可使用转发器和集线器。
ISP = Internet Server provider
在骨干网布线中,一般采用光缆和同轴电缆。
由于光缆的扩展距离较长,抗电磁干扰能力强,数据传输速率高,适合题中的实际物理环境要求,因此选择光缆作为连接缆线比较合适。
linux相关
留白