随笔分类 -  C++

记录C++的一些学习笔记。
摘要:1. 作用 类通过自定义的类型转换运算符,可以将一个类型转换成另一个类型。例如将自定义的Student类转换成std::string类。 虽然在格式上和运算符重载类似,但运算符重载是一个成员函数,而类型转换运算符不是,因为没有返回值。 2. 格式 operator type() [const]; t 阅读全文
posted @ 2024-08-01 23:39 BinaryPrinter 阅读(43) 评论(0) 推荐(0)
摘要:1. 一维初始化 // 无参初始化 vector<int> vec1; // 长度为10 vector<int> vec2(10); // 长度为10,且初始化为1 vector<int> vec3(10, 0); 2. 二维数组初始化 // 无参初始化 vector<vector<int>> ve 阅读全文
posted @ 2024-03-27 17:00 BinaryPrinter 阅读(105) 评论(0) 推荐(0)
摘要:内容参考: C++文件读写详解(ofstream,ifstream,fstream)_c++ 文件读写-CSDN博客 一. 概述 分类: 在程序设计中,用于输入/输出的流是必不可少的。C++中,依照用途不同,流可以被划分位三种: 标准IO流:内存与标准输入、输出设备间的通信,一般是控制台。 文件IO 阅读全文
posted @ 2024-02-17 23:31 BinaryPrinter 阅读(48) 评论(0) 推荐(0)
摘要:文章参考: C++ 教程 | 爱编程的大丙 (subingwen.cn) C++11的原子量与内存序浅析 - 兔晓侠 - 博客园 (cnblogs.com) 从C++11起,C++为用户提供一套新的多线程类。线程相关操作头文件:thread #include <thread> 一. std::thr 阅读全文
posted @ 2023-12-19 22:10 BinaryPrinter 阅读(155) 评论(0) 推荐(0)
摘要:1. 隐式类型转换 在C++11前,对于类的使用,存在隐式类型转化的情况,实质上是构造函数的隐式调用。下面是一个例子: EG: 代码: #include <iostream> using namespace std; class Test { public: int x; int y; Test(i 阅读全文
posted @ 2023-12-12 21:42 BinaryPrinter 阅读(76) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. 概述 弱引用智能指针std::weak_ptr是共享智能指针std::shared_ptr的助手,它不管理shared_ptr内部的原始指针,也没有重载操作符*、->,因此不共享指针,不能操作资源,所以它的构造和析构都不会影响引用计数。其 阅读全文
posted @ 2023-12-12 17:02 BinaryPrinter 阅读(97) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. 初始化: 特点: 相较于共享智能指针,独占智能指针(unique_ptr)的关键在于:同一时刻,只能有一个智能指针指向同一块内存。因此独占智能指针不允许使用拷贝构造函数和拷贝赋值函数。 初始化: 通过构造函数初始化: unique_ptr 阅读全文
posted @ 2023-12-12 15:02 BinaryPrinter 阅读(74) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 所谓智能指针,其实就是C++11封装的类,里面存有一个正常指针,智能指针会通过这个正常指针,来监视指针指向的内存,当没有智能指针指向该内存时,该内存就被释放。其核心在于引用计数,每一个智能指针指向内存A,智能指针内部的引用计数就加一。每析构一次 阅读全文
posted @ 2023-12-12 15:02 BinaryPrinter 阅读(161) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. 联合体 联合体又名共用体,使用方式和struct相似,其特点在于: 联合体中所有的成员变量,引用的都是内存中的相同位置。 如果联合的不同成员有不同的长度,取最长的那个变量作为联合的长度。 如果将结构体作为联合的成员变量,那么联合的大小取决 阅读全文
posted @ 2023-12-11 18:30 BinaryPrinter 阅读(82) 评论(0) 推荐(0)
摘要:文章参考 爱编程的大丙 (subingwen.cn) 1. 枚举 1.1 概述 在C/C++中的枚举来自于C,处于设计上简单的目的,枚举往往对应到整型数值。: // 匿名枚举 enum {Male, Female}; // 0, 1 // 有名枚举 enum Color {Red, Yellow=2 阅读全文
posted @ 2023-12-11 14:45 BinaryPrinter 阅读(171) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. 语法改进 在C++98中,如果想要声明类B是类A的友元类,需要class关键字,而在C++11中,可以省略关键字class,还可以使用别名。 EG: C++98中: class B; class A{ friend class B; // 阅读全文
posted @ 2023-12-08 17:29 BinaryPrinter 阅读(58) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. 类与默认函数 在C++中声明自定义的类,编译器会默认帮程序员生成一些未定义的成员函数,这些函数被称为默认函数,一共有六个: 无参构造函数:创建类对象 拷贝构造函数:拷贝类对象 移动构造函数:拷贝类对象。 拷贝赋值函数:类对象赋值。 移动赋 阅读全文
posted @ 2023-12-08 16:07 BinaryPrinter 阅读(80) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. POD概述 1.1 意义 POD:是plain old data的缩写,即普通的旧数据。POD通常用于说明一个类型的属性,尤其是用户自定义类型的属性,具体来说它是指没有使用面向思想来设计的类/结构体。 POD含义为: Plain:表示是一 阅读全文
posted @ 2023-12-08 15:19 BinaryPrinter 阅读(245) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. 可调用对象 一组执行任务的语句都可以视作一个函数、一个可调用对象。C++中提供了可调用对象的概念,其应用相当广泛,例如在处理一些回调函数、触发函数时就会用到。 可调用对象有如下几种类型: 函数指针: int add(int a, int 阅读全文
posted @ 2023-12-07 15:35 BinaryPrinter 阅读(83) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. C++98 在C++11之前,using有两种用法: 用来声明要使用的命名空间: using namesapce std; 当子类重载父类的同名成员函数时,通过using继承父类的同名函数。 #include <iostream> usi 阅读全文
posted @ 2023-12-06 14:57 BinaryPrinter 阅读(60) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) C++中有多种数据类型,如:变量、数组、对象。这些数据类型各自的初始化方式,并没有统一的方法。为了简化初始化过程,C++11提出了一种统一的初始化方法,即列表初始化。 1. 统一的初始化 1.1 C++98 在C++98中,有两种情况可以使用列 阅读全文
posted @ 2023-12-06 13:52 BinaryPrinter 阅读(219) 评论(0) 推荐(0)
摘要:文章参考: 爱编程的大丙 (subingwen.cn) 1. move 作用:主要作用有两点: 实现用左值来初始化右值引用。 进行对象间的资源转移。(避免使用拷贝,从而提高效率) 特点: 可以将左值转化为右值。 该函数和移动构造函数一样,都有移动语义,将对象的状态或者所有权从一个对象转移到另一个对象 阅读全文
posted @ 2023-12-05 13:53 BinaryPrinter 阅读(78) 评论(0) 推荐(0)
摘要:1. 异常处理 注意:以下内容在C++11中进行了优化,不再适用。 在C++98中,为程序可能出现的异常提供了一套完整的机制,其基本语法如下: 抛出异常: throw 表达式; try catch代码块: try{ 复合语句 }catch(异常类型){ 复合语句 }catch(异常类型){ 复合语句 阅读全文
posted @ 2023-12-04 17:20 BinaryPrinter 阅读(71) 评论(0) 推荐(0)
摘要:文章参考: 《C++面向对象程序设计》✍千处细节、万字总结(建议收藏)_白鳯的博客-CSDN博客 C++支持C的输入、输出结构,同时也建立了一套面向对象的输入、输出结构,且更加安全。其输入/输出通过字节流的形式实现。 1. 输入/输出头文件 iostream:包含了对输入/输出流进行操作所需的基本信 阅读全文
posted @ 2023-12-04 17:19 BinaryPrinter 阅读(72) 评论(0) 推荐(0)
摘要:文章参考: C++ 运算符重载_c++ 重载=-CSDN博客 1. 概述 如果不进行特殊处理,C++默认的运算符只能对基本的常量或变量进行运算,不能用于对象之间的运算。但有时我们希望对这些运算符功能进行拓展,让他们能够支持更多的运算。运算符重载应运而生。它能够赋予已有的运算符多重含义,使得同一运算符 阅读全文
posted @ 2023-12-04 17:18 BinaryPrinter 阅读(95) 评论(0) 推荐(0)