随笔分类 -  c++

摘要:C++的动态绑定(运行时多态)是通过虚函数表(vtable) 和虚函数表指针(vptr) 来实现的。 1. 虚函数表(vtable) 每个包含虚函数的类都有一个对应的虚函数表 虚函数表是一个函数指针数组,存储该类所有虚函数的地址 虚函数表在编译时生成,存储在程序的只读数据段 2. 虚函数表指针(vp 阅读全文
posted @ 2025-09-01 23:03 灰灰奋斗录 阅读(45) 评论(0) 推荐(0)
摘要:对象切片是C++中的一个重要概念,指的是当派生类对象被赋值给基类对象时,派生类特有的部分会被"切掉",只保留基类的部分。 为什么会发生切片? 由于基类对象不知道派生类的存在,当把派生类对象赋值给基类对象时,编译器只会拷贝基类部分的数据,派生类独有的成员变量和方法都会被丢弃。 示例代码: #inclu 阅读全文
posted @ 2025-09-01 22:22 灰灰奋斗录 阅读(38) 评论(0) 推荐(0)
摘要:什么是类型安全? 类型安全 指的是一门编程语言防止或检测类型错误的能力。类型错误的发生,通常是因为代码试图将某种类型的数据当作另一种不兼容的类型来操作。 一个类型安全的语言会在编译时或运行时捕获这些错误,而不是让程序以一种未定义、不可预测的方式运行(比如崩溃或产生错误结果)。 类型错误的简单例子: 阅读全文
posted @ 2025-08-30 22:22 灰灰奋斗录 阅读(69) 评论(0) 推荐(0)
摘要:基本线程操作 1. 创建线程 #include <iostream> #include <thread> void threadFunc() { std::cout << "子线程正在执行..." << std::endl; } int main() { std::thread t(threadFu 阅读全文
posted @ 2025-08-07 12:12 灰灰奋斗录 阅读(23) 评论(0) 推荐(0)
摘要:1. 容器(Containers) 序列容器:元素按线性顺序排列。 vector:动态数组,支持快速随机访问。 list:双向链表,支持高效插入/删除。 deque:双端队列,首尾操作高效。 array(C++11):固定大小数组。 forward_list(C++11):单向链表。 关联容器:基于 阅读全文
posted @ 2025-08-06 20:58 灰灰奋斗录 阅读(18) 评论(0) 推荐(0)
摘要:C++ 标准库容器(如 vector, map, set 等)具有以下重要特性: 1. 内存管理自动化 自动内存分配/释放:容器自动管理元素的内存 动态扩容:当容量不足时自动重新分配内存(如 vector 的扩容) RAII 原则:容器析构时自动释放所有元素内存 std::vector<int> v 阅读全文
posted @ 2025-08-05 23:59 灰灰奋斗录 阅读(23) 评论(0) 推荐(0)
摘要:RAII(Resource Acquisition Is Initialization,资源获取即初始化)是 C++ 的核心编程范式,它将资源管理与对象生命周期绑定,确保资源的正确获取和释放。 核心思想 资源获取在构造函数中完成 资源释放在析构函数中完成 利用栈对象的确定性析构特性(离开作用域时自动 阅读全文
posted @ 2025-08-05 22:54 灰灰奋斗录 阅读(105) 评论(0) 推荐(0)