• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dongqicn
博客园 首页 新随笔 联系 订阅 订阅 管理

2026年8月2日

十四、智能指针
摘要: 1. 智能指针家族 C++ 标准库提供了三种主要的智能指针,定义在 头文件中: 智能指针 所有权 引用计数 可拷贝 核心特点 unique_ptr 独占 无 不可拷贝,只能移动 零开销,性能与裸指针相当 shared_ptr 共享 有 可拷贝 引用计数管理,最后一个销毁时释放 weak_ptr 非拥 阅读全文
posted @ 2026-08-02 13:52 东起 阅读(11) 评论(0) 推荐(0)
 
 

2026年8月1日

十三、右值引用
摘要: C++98/03 只有左值引用 &,拷贝对象时会产生大量不必要深拷贝,性能损耗严重。C++11 引入右值引用 &&,诞生移动语义、移动构造、移动赋值,通过转移资源所有权替代拷贝,大幅减少内存拷贝开销。 1. 左值与右值 1.1 左值(lvalue,locatevalue) 可以取地址,能够修改的持久 阅读全文
posted @ 2026-08-01 21:16 东起 阅读(10) 评论(0) 推荐(0)
 
 

2026年7月30日

十二、Lambda 表达式
摘要: Lambda(λ):编译器自动生成的匿名仿函数的语法糖。可以就地定义可调用对象,能够捕获上下文中的局部变量。 写 lambda,编译器后台自动生成一个独一无二的类(仿函数),[]里捕获的变量变成这个类的成员变量;()是函数形参;{}是函数体;operator()被重载。 1. 为什么需要Lambda 阅读全文
posted @ 2026-07-30 21:10 东起 阅读(13) 评论(0) 推荐(0)
 
十一、可调用对象包装器、绑定器
摘要: 1. 可调用对象 可以使用函数调用运算符()执行的对象,也就是说,只要能写成obj(args...),这个obj就是可调用对象。 C++把 “普通函数、函数指针、lambda、仿函数、成员函数” 统一抽象成一类东西 ——可调用对象,方便模板统一接收。 2. C++5大类可调用对象 2.1 普通函数 阅读全文
posted @ 2026-07-30 20:47 东起 阅读(9) 评论(0) 推荐(0)
 
十、基于范围的for循环
摘要: 引言 在C++98/03时代,遍历一个容器,标准写法是这样的: std::vector<int> vec {1, 2, 3, 4, 5}; // 方式一:下标索引 for (size_t i = 0; i < vec.size(); ++i) { std::cout << vec[i] << " " 阅读全文
posted @ 2026-07-30 15:58 东起 阅读(6) 评论(0) 推荐(0)
 
九、列表初始化
摘要: 1. c++11之前的初始化 int a = 5; // 拷贝初始化 int b(5); // 直接初始化 int arr[3] = {1, 2, 3}; // 数组初始化 Object obj1; // 默认构造 Object obj2(obj1); // 拷贝构造 语法不统一,混乱 2. 列表初 阅读全文
posted @ 2026-07-30 15:32 东起 阅读(17) 评论(0) 推荐(0)
 
八、委托构造函数和继承构造函数
摘要: 1. 委托构造函数 同一个类内部,一个构造函数调用本类的另一个构造函数,减少构造函数重复代码。 写在初始化列表中,调用同类其他构造函数,不能在函数体内调用。 class A { public: //委托构造:无参构造委托给带参构造 A() : A(0) { } A(int x) { _x = x; 阅读全文
posted @ 2026-07-30 14:24 东起 阅读(9) 评论(0) 推荐(0)
 
七、using
摘要: 1. typedef 语法 typedef是C语言遗留的起别名语法,作用是给已有类型起一个别名,不是创造新类型,仅仅是别名 语法格式:typedef 原类型 别名; #include <iostream> #include <vector> // 给int起别名 typedef int MyInt; 阅读全文
posted @ 2026-07-30 13:45 东起 阅读(9) 评论(0) 推荐(0)
 
 

2026年7月29日

六、override和final关键字
摘要: 1. override:显示重写,强制编译器检查 作用就是子类的函数重写父类的虚函数,如果签名不匹配,编译器直接报错,避免写错函数名、参数、const,造成没有完成重写,变成隐藏新函数。 override只是检测工具,本身不产生重写行为;必须父类是virtual虚函数。 #include <iost 阅读全文
posted @ 2026-07-29 22:29 东起 阅读(9) 评论(0) 推荐(0)
 
五、auto 与 decltype对比
摘要: 1.auto VS decltype auto 是根据变量初始值推导类型;decltype 是根据表达式推导类型。 auto a = 10; // int a decltype(10) b; //从表达式推导类型,不计算表达式,只分析表达式的类型 2. auto 语法:auto 变量 = 表达式; 阅读全文
posted @ 2026-07-29 21:53 东起 阅读(9) 评论(0) 推荐(0)
 
 
下一页

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3