cpp学习笔记

1.静态类型、动态类型、静态绑定、动态绑定的定义

静态类型是声明类型,在编译期间确定;动态类型是目标所指对象的类型,在运行期间确定。

静态绑定是编译器发生,对于非虚函数的内容,动态绑定是运行期间发生

2.应对软件需求变化的编码

应该在设计之初就提前预想到需求可能会变化,编写适合的代码。具体来说就是比如使用接口。

3.const char*和string的关联

string底层是用char数组实现,string和const char*可以互相转换,前者转后者用方法c_str,后者转前者之间赋值或者构造。

4.printf的原理

函数的参数会被放入栈中,而参数是从右到左放入栈中,根据第一个参数就能直到要格式化打印多少数据,这样就能匹配。

5.int main(int argc,char* argv\[\])

argc是函数调用参数个数,包括文件名,argv存储的是参数,是用char*去存储。

6.static成员和普通成员的区别

生命周期不同:static成员是类的开始和销毁存在,而普通成员是对象存活的时候存在。

共享方法不同:static是全对象共享,普通成员是对象独有。

初始化方式不同:static是类外初始化,普通成员在类内初始化

使用方法不同:static不和对象绑定,可以通过类名访问

7.指针和引用传参的区别

都可以修改实参的内容;区别是指针仍然是一个变量,不过当结构体很大时指针使用的变量相比就很小。需要改变内容的时候都可以使用。

8.分配内存的底层实现,malloc

使用brk和mmap分配逻辑内存空间,当实际使用的时候利用缺页中断分配物理内存。

9.Session和Cookie区别

都是存储的用户信息,cookie是存储在客户端浏览器的,session是存储在服务器端的,session存储的信息比cookie多,理论上不受限制。

在访问的时候服务器响应的时候会发送set-cookie给客户端,客户端会在再次发送请求的时候带上cookie,这样服务器能检测到cookie对应的session继续操作。

10.post和get发送数据为什么更安全?、

因为post不会在地址栏携带数据,但本质上post使用http都是明文发送,可以被抓包,使用https才是安全的网络协议。

11.网络协议分层的原因

设计上更加独立、维护起来更加容易、更改内容更加灵活、大的程序设计都需要分层,而计算机网络的通信本质上也是一个程序,比如二层设备三层设备代表的就是检查二层头的程序,检查三层头的程序。

12.内存对齐

内存对齐的原因是cpu可以更快速地访问;类的成员变量相对起始位置的偏移会是变量大小的整数倍,类的结构体大小会是类最大成员变量的整数倍。

可以修改内存对齐的方式。

13.阻止类的对象生成的方法

把构造函数声明成private并且把new也声明成private。这样只有使用类的创建方法才能创建。

14.计数类实例化的个数的方法

在构造函数、拷贝构造、赋值构造中对static的变量加1,在析构函数中对此变量减1.

相关推荐
乐橙开放平台11 分钟前
通道国标 ID 贴反会串店:海康大华宇视摄像头怎么用 GB28181 统一接入?
网络·笔记·物联网·自动化·音视频·智能家居
JWASX29 分钟前
【agent 开发】agent 开发学习 - LangChain(3)
学习·langchain
dadaobusi1 小时前
一个有趣的物理假设
学习
JWASX2 小时前
【agent 开发】agent 开发学习 - LangChain(2)
python·学习·langchain
ab1237682 小时前
Spring Integration 完整笔记 + 和 spring-integration-mqtt、Paho、EMQX 的关系
java·笔记·spring
li星野2 小时前
【学习记录】立创EDA专业版核心概念全解析:数据整理、设计验证与器件四层模型
学习
知识分享小能手2 小时前
C学习教程,从入门到精通,C语言输入和输出(4)
c语言·开发语言·学习
ACP广源盛139246256732 小时前
Type-C 扩展坞方案选型笔记|国产 DP1.2 转 HDMI2.0 桥接芯片 GSV2201D@ACP 评估
开发语言·笔记·硬件架构·硬件工程·hdmi·国产芯片
旖旎夜光2 小时前
【LangGraph实战】LangGraph 学习笔记(四):持久化——从线程记忆到跨会话长期记忆
人工智能·笔记·python·学习·ai编程·langgraph
kdxiaojie3 小时前
MPU6050学习
笔记·学习·mpu6050