C++
文章平均质量分 91
百亿苍狗
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++11智能指针
shared_ptr 定义的智能指针 A 赋值给 shared_ptr 定义的智能指针 B 的时候。weak_ptr ⽀持拷⻉或赋值, 但不会影响对应的 shared_ptr 内部对象的计数.reset :放弃内部对象的所有权或拥有对象的变更, 会引起原有对象的引⽤计数的减少。**shared_ptr 定义的智能指针 A 拷⻉构造产⽣智能指针 B 的时候,**use_count :返回与 shared_ptr 共享的对象的引⽤计数.⽤于获取所管理的对象的强引⽤ (shared_ptr).原创 2025-08-04 09:18:57 · 541 阅读 · 0 评论 -
std::function 和 std::bind、c++11多线程
和和可调⽤对象有⼀下⼏种定义:是⼀个函数指针是⼀个具有 operator() 成员函数的类的对象可被转换成函数指针的类对象⼀个类成员函数指针 (void(void))C++ 中可调⽤对象的虽然都有⼀个⽐较统⼀的操作形式,但是定义⽅法五花⼋⻔,这样就导致使⽤统⼀的⽅式保存可调⽤对象或者传递可调⽤对象时,会⼗分繁琐。C++11 中提供了 std::function和std::bind 统⼀了可调⽤对象的各种操作。原创 2025-08-04 09:03:46 · 604 阅读 · 0 评论 -
c++11新的关键字、右值引用与移动语义、lambda表达式
C++98/03,C++11 则带来了数量可观的变化,其中包含了约 140 个新特性,以及对 C++03 标准中约600 个缺陷的修正,这使得 C++11 更像是从 C++98/03 中孕育出的⼀种新语⾔。上述代码看起来没有什么问题,但是有⼀个不好的地⽅:**GetString 函数返回的临时对象,将 s2 拷⻉构造成功之后,⽴⻢被销毁了 (临时对象的空间被释放),再没有其他作⽤;,它并不搬移任何东⻄,** 唯⼀的功能就是将⼀个左值强制转化为右值引⽤,通过右值引⽤使⽤该值,实现移动语义。原创 2025-08-04 08:53:36 · 863 阅读 · 0 评论 -
map、multimap、queue、stack、priority_queue、迭代器、函数对象
关联容器之关联容器之map 容器提供⼀个键值对(key/value)容器map 与 multimap 差别仅仅在于 multiple 允许⼀个键对应多个值。map 内部⾃建⼀棵红⿊树(⼀种⾃平衡⼆叉树),这棵树具有数据⾃动排序的功能所以在map 内部所有的数据都是有序的,以⼆叉树的形式进⾏组织。容器适配器之适配器(Adaptors)是标准库中的⼀个通⽤概念,容器、迭代器和函数 **** 都有适配器。本质上,⼀个适配器是⼀种机制,能使某种事物的⾏为看起来像另外⼀种事物⼀样。原创 2025-08-04 08:34:53 · 882 阅读 · 0 评论 -
非类型参数、STL、vector、deque、list
*STL(标准模板库 Standard Template Library)** 是⼀个具有⼯业强度的⾼效 C++ 程序库,** 包含了诸多在计算机科学领域⾥所常⽤的基本数据结构和基本算法。,扮演容器与算法之间的胶合剂,是所谓的 “泛型指针”,共有 5 种类型,以及其他衍⽣变化。空间是以 2 的倍数动态增⻓的,在 push_back 的过程中,若发现分配的内存空间不⾜,则重。set 的含义是集合,它是⼀个有序的容器,⾥⾯的元素都是排序好的,⽀持插⼊,删除,查找。原创 2025-08-04 08:16:53 · 938 阅读 · 0 评论 -
抽象类、虚继承、泛型介绍、函数模板、类模板
一、泛型介绍//思考:以下程序有什么缺点int c;c = a;a = b;b = c;编写不依赖于具体数据类型的程序,将算法从数据结构中抽象出来,成为通用的,将程序写的尽可能通用。在C++中模板为泛型程序设计提供了基础,如STL(标准模板库。二、模板1.概念模板是一种用不确定类型参数来产生一系列函数和类的机制通过模板我们可以产生类和函数的集合,使他们操作不同的数据类型从而避免为每一种数据类型单独产生一个函数和类2.分类函数模板类模板3.工作方式。原创 2025-08-04 08:04:08 · 539 阅读 · 0 评论 -
多态、重载、覆盖、隐藏、虚析构函数
* 回答:** 因为在多态的场合是动态绑定的,** 程序运⾏的时候,会根据⼦类对象⾥⾯的 vptr 找到虚函数表,然后通过查虚函数表找到要调⽤的函数。** 由于是不同的⼦类对象,每个⼦类对象对应的虚函数表中函数实现不⼀样,最终调⽤的函数也就不⼀样了。在 C++ 中可以使⽤⽗类的引⽤来引⽤⼦类的对象,也可以使⽤⽗类的指针来指向⼦类的对象。为什么⽤⽗类指针或引⽤指向⼦类对象的时候,可以根据⼦类对象的不同,调⽤不同⼦类对象的函数?⽗类的引⽤来引⽤⼦类的对象或⽗类的指针来指向⼦类的对象。原创 2025-07-31 11:12:10 · 732 阅读 · 0 评论 -
特殊运算符重载及注意点、继承、组合、修饰权限、菱形继承
特殊运算符重载及注意点特殊运算符重载及注意点一、赋值运算符 = 重载将⼀个对象赋值给另⼀个对象的时候**,会调⽤赋值运算符重载函数 **注意:如果没有⼿动添加它,编译器会提供⼀个默认的赋值运算符重载函数C++ 强制规定,赋值运算符重载函数只能定义为类的成员函数二、左移运算符<<重载三、不能被重载的运算符⼤部分运算符都可以重载,以下运算符不能重载四、注意点C++ 中⼤部分运算符都可以重载,只有⼀⼩部分不可以重载,其中 "=“和”&" 不重载,编译器默认⽀持。原创 2025-07-31 10:49:58 · 865 阅读 · 0 评论 -
static关键字用法、静态成员和非静态成员、const关键字、friend友元、运算符重载
把类 A 的⼀个成员函数声明为类 B 的友元函数,这样这个类 A 的成员函数就可以访问类 B 的私有成员了。把类 A 声明为类 B 的友元类,这样这个类 A 的所有成员函数都可以访问类 B 的私有成员了。** 前置单⽬运算符 (++/–)** 重载为类的成员函数时,不需要显式说明参数,即函数没有形参。把类外的⼀个普通函数声明为类的友元函数,这样这个外部函数就可以访问类的私有成员了。类的私有成员只能被类的成员函数直接访问,类外函数是⽆法直接访问的。⼀般会将它声明为类的友元函数,这样它可以访问类的私有成员。原创 2025-07-31 10:33:19 · 788 阅读 · 0 评论 -
对象创建、this指针、构造函数、析构函数、拷贝构造函数
对象创建对象创建3. 对象创建对象本质上就是⼀块内存这块内存中存放的是创建这个对象的类描述的数据⼀、在栈上创建对象在函数内部,⽤类定义⼀个变量, 这个变量就是栈上创建的对象在函数调⽤结束的时候栈上分配的内存会⾃动释放掉, 这个对象也就销毁掉了。⼆、在静态区创建⽤类在函数外⾯定义⼀个全局变量⽤ static 修饰的局部变量在程序结束的时候静态区的内存空间会⾃动释放掉三、在堆区创建通过 new 运算符分配内存通过 delete 运算符释放内存四、任务⽤时间类在。原创 2025-07-31 10:16:50 · 1221 阅读 · 0 评论 -
堆区内存管理new和delete、链接库、面向对象与面向过程、类的设计
第⼀类对象(玩家对象)负责接受⽤户输⼊,并告知第⼆类对象(棋盘对象)棋⼦布局的变化,棋盘对象接收到了棋⼦的变化就要负责在屏幕上⾯显示出这种变化,同时利⽤第三类对象(规则系统)来对棋局进⾏判定。0X99并在屏幕上输出。malloc 与 free 是 C++/C 语⾔的标准库函数,new/delete 是 C++ 的运算符。对于⾮内部数据类型的对象⽽⾔,光⽤ malloc/free ⽆法满⾜动态对象的要求。malloc/free 是 C/C++ 标准库的函数,new/delete 是 C++ 运算符。原创 2025-07-31 09:59:52 · 894 阅读 · 0 评论 -
C++初步认识、命名空间、引用、函数增强
编译阶段,g++ 会调⽤ gcc,链接阶段通常会⽤ g++ 来完成,g++ 在编译的过程中,其实是调⽤ gcc按照 c++ 程序来编译的。即编译⼯作最终都是由 gcc 来完成的。在 C 语⾔中我们经常需要通过⼀个指针变量指向⼀个普通变量,然后通过指针变量修改普通变量的值,特别是函数间传参的时候⽤的特别多。在执⾏程序过程中如果要进⾏函数调⽤,则系统要将程序当前的⼀些状态信息存到栈中,同时转到函数的代码处去执⾏函数体语句,指针在程序运⾏的时候,可以改变它的值, ⽽引⽤和⼀个变量绑定之后就不能在引⽤其他变量。原创 2025-07-29 20:57:57 · 628 阅读 · 0 评论
分享