C++
文章平均质量分 89
hhhcbw
Hello World!!!
展开
-
C++宏展开
感觉自己一直对C++的宏展开没有细致地研究过,这两天深入地学习了一下,做个笔记。原创 2024-08-29 15:56:01 · 835 阅读 · 0 评论 -
C++深入剖析智能指针
本文深入shared_ptr,weak_ptr以及unique_ptr的MSVC源码实现,理解智能指针的具体实现。原创 2024-08-25 18:58:25 · 328 阅读 · 0 评论 -
一个C++模板有意思的小实验
一个C++模板的小实验原创 2024-08-13 20:54:58 · 179 阅读 · 0 评论 -
C++显式类型转换
本文主要分析C++的4种显式类型转换。原创 2024-05-15 14:10:55 · 828 阅读 · 0 评论 -
C++继承中成员变量的内存排布
这篇文章主要讨论C++继承中成员变量的内存排布情况,主要包括单继承,多继承,带虚函数的继承,带虚基类的继承。原创 2024-05-02 16:20:33 · 839 阅读 · 0 评论 -
C++成员初始化列表
我们在类的构造函数中使用成员初始化列表可以带来效率上的提升,那么成员初始化列表在编译后会发生什么就是这篇文章要探究的问题。原创 2024-05-01 11:08:24 · 664 阅读 · 0 评论 -
C++编译器的程序转化
编译器在某些情况下会对程序进行转化,有些是编译器需要的,有些是出于性能考虑的,转化可能会产生出乎意料的结果。原创 2024-04-30 23:11:08 · 879 阅读 · 0 评论 -
C++拷贝构造函数的合成
默认构造函数和拷贝构造函数在必要的时候才由编译期合成出来。原创 2024-04-28 21:37:51 · 878 阅读 · 0 评论 -
C++默认构造函数的合成
编译器只在编译期需要的时候合成默认构造函数,而不是在用户需要的时候。原创 2024-04-27 20:30:36 · 883 阅读 · 0 评论 -
C++函数调用流程分析
c++函数调用流程分析,附实例详解原创 2024-04-14 11:16:17 · 978 阅读 · 0 评论 -
C++智能指针(三)——unique_ptr初探
与共享指针shared_ptr用于共享对象的目的不同,unique_ptr是用于独享对象,下面简单介绍下unique_ptr及其使用,参考书籍《The C++ Standard Libraray》。原创 2023-10-14 22:11:19 · 1043 阅读 · 0 评论 -
C++智能指针(二)——weak_ptr初探
C++智能指针weak_ptr介绍,参考书籍《The C++ Standard Library》原创 2023-10-12 20:59:42 · 1257 阅读 · 0 评论 -
C++智能指针(一)——shared_ptr初探
智能指针shared_ptr简单介绍,参考书籍《The C++ Standard Library》原创 2023-10-11 21:11:10 · 693 阅读 · 0 评论 -
C++统一初始化和初始化列表
一直对C++初始化使用圆括号和花括号的区别有所疑惑,参考书籍和博客简单总结一下。原创 2023-10-09 16:05:22 · 310 阅读 · 0 评论 -
C++ typedef函数指针用法
typedef函数指针用法转载 2023-03-10 09:07:35 · 166 阅读 · 0 评论 -
C++ 内联函数和constexpr函数
C++内联函数和constexpr函数介绍原创 2023-02-28 18:41:28 · 593 阅读 · 0 评论 -
C++对象移动
C++对象移动,主要关于右值引用的介绍,以及标准库中move函数的使用原创 2023-02-28 14:27:49 · 730 阅读 · 0 评论 -
C++引用
C++引用介绍原创 2023-02-27 18:39:55 · 355 阅读 · 0 评论 -
OpenMP入门
OpenMP入门知识,主要关于一些简单的概念,如何用OpenMP实现简单的多线程原创 2022-10-29 23:53:30 · 2672 阅读 · 3 评论 -
games101——作业0 C++数学库与Eigen库的基本使用
C++cmath数学库常用函数的使用,Eigen库的基本使用,包括矩阵或向量的定义与访问,以及矩阵以及向量之间的运算,最后是关于作业0的实现。原创 2022-10-04 15:23:27 · 852 阅读 · 0 评论 -
【转】C++11 lambda表达式精讲
C++ lambda表达式精讲转载 2022-09-26 21:40:17 · 186 阅读 · 0 评论 -
C++I/O流
下面对cctype函数说明返回 Char_Exp 的大写形式返回 Char_Exp 的小写形式如果 Char_Exp 是大写字母,就返回true,否则返回false如果 Char_Exp 是小写字母,就返回true,否则返回false如果 Char_Exp 是字母表中的字母,就返回 true;否则返回false如果 Char_Exp 是’0’到’9’的数字,就返回true,否则返回false如果 Char_Exp 是空白字符(比如空格或换行符),就返回true;否则返回false这是因为。...原创 2022-08-14 20:29:02 · 888 阅读 · 0 评论 -
C++模板
生成针对所有可能类型的定义,只是表现得像是生成了所有函数定义。针对用到的每种类型,编译器都生成单独的函数定义,但不会为没用到的任何类型生成定义。另外,无论为一种类型使用多少次模板,都只为那种类型生成一个定义。函数应用于更多类型,必须一次又一次地重复几乎完全一样的函数定义。算法抽象是指用一个更常规(泛化)的方式表示算法,忽略完全一致的细节,将重点放在算法本质上。类模板的成员函数采用与普通类的成员函数一样的方式来定义。唯一的区别是,成员函数定义本身也是模板。换言之,指定的每个模板参数都必须在模板函数中用到。..原创 2022-08-07 21:19:34 · 441 阅读 · 0 评论 -
C++异常处理
throw语句能抛出任意类型的一个值。程序员常做的事情就是定义一个类,它的对象专门容纳抛给catch块的信息。之所以要定义具体的异常类,更重要的原因是可用不同类型标识每种异常情况。需要注意的是异常类本质上还是类。public :};try {}...原创 2022-08-06 21:01:13 · 378 阅读 · 0 评论 -
C++继承
派生类继承基类的所有成员函数(和成员变量)。但是,如果派生类要以不同方式实现继承的成员函数,可以在派生类中重定义该函数。要重定义成员函数,必须在派生类定义中列出它的声明,即使该声明与基类中的声明完全相同。不想重定义从基类继承的成员函数,就不要列出。比如上面代码中的getSum()方法,就在派生类B中进行了重定义。不要混淆在派生类中对函数的重定义(redefining)和对函数名的重载(overloading)。重定义时,派生类给出的新定义具有相同的参数数量和类型。......原创 2022-08-04 11:55:37 · 650 阅读 · 0 评论 -
C++独立编译和命名空间
如果一个名称在两个命名空间都进行了定义,而你同时使用了这两个命名空间,那么会发生什么?虽然能在两个不同的命名空间定义相同的名称,但在这种情况下,每次只能用其中一个命名空间。一个程序使用有不同程序员写的不同的类和函数时,可能出现两个程序员为两样不同的东西使用同一名称的情况。在编译单元的范围内,可直接使用无名命名空间中的任意名称,不需要使用限定符。的定义,且C++不允许多次定义同一个类,即使重复的是完全相同的定义。你写的每一句代码都在某个命名空间中。指令,因为它是默认命名空间,你总是在使用这个命名空间。...原创 2022-08-01 17:48:04 · 364 阅读 · 0 评论 -
C++类和动态数组
换言之,如函数包含局部变量,而且这个局部变量是提供了析构函数的对象,那么函数调用终止时会自动调用析构函数。此外,将动态变量嵌入类的实现中,由于使用该类的程序员并不知道动态变量的存在,所以不能指望他们帮你调用。析构函数不能指定返回值类型,无参数,所以每个类只能有一个析构函数,不能为类重载析构函数。重载赋值操作符与重载其他操作符不同,重载赋值操作符必须是类的成员,而不能是类的友元。类没有合适的析构函数,函数调用就会不断消耗自由存储中的内存,直至所有内存都消耗殆尽,造成程序不得不异常终止。,也可能需要调用多次。.原创 2022-07-31 12:52:58 · 771 阅读 · 0 评论 -
C++重载操作符
普通函数的实参则在函数名之后的圆括号中列出。除了写法上的区别,作为类的成员,其只能位于第一个参数的位置(作为调用对象),比如下面的一个例子。无论是作为类的成员还是友元函数都是合法的。这里需要重点说明的是,将操作符函数作为类的成员与友元函数的区别。我们可以按照下面的方式定义一个获取一个整型的构造函数。代码看起来简单和自然,但存在一个问题,就是我们之前的代码没有重载对象与整型之间的。如果类定义包含了恰当的构造函数,系统会自动执行特定的类型转换。而下面的例子,如果作为类的成员就是不合法的,而作为友元函数则合法。.原创 2022-07-29 11:43:00 · 743 阅读 · 0 评论 -
C++友元函数
对于普通函数,无法直接访问类的私有成员,还有时候需要普通函数来访问类的私有成员以简化代码,这时就需要友元函数登场了。原创 2022-07-26 18:37:04 · 580 阅读 · 0 评论 -
C++类与对象
C++的类定义包括属性及成员函数,且分为公有成员和私有成员。公有成员在程序的任意地方直接访问。私有成员只能在成员函数的定义中使用。public//前条件newMonth和newDay构成一个可能的日期//后条件日期根据传递的实参来重置intgetMonth();//返回月份,1代表1月,2代表2月,依次类推intgetDay();//返回天数privateintday;};\n";\n";\n";return0;...原创 2022-07-23 22:25:41 · 466 阅读 · 1 评论 -
C++结构体初始化方法
在C++里可以将结构体看作没有任何成员函数的对象,下面对C++结构体的几种初始化方法进行总结。原创 2022-07-22 19:34:32 · 15596 阅读 · 6 评论 -
C++STL容器(一)——vector扩容和回收
面字节被问了这个问题,当时没有答上来,现在自己学习了一下做个总结文章目录一、求容器大小的方法二、扩容的方法三、resize 和 reserve 方法1. resize()2. reserve()四、1.5倍扩容 vs 2倍扩容1. 2倍扩容2. 1.5倍扩容五、容器的回收一、求容器大小的方法vector<int> vc; // 定义一个 int 类型的动态数组 vcvc.size(); //返回当前 vc 元素的个数。vc.capacity(); //返回当前 vc 中最大能够存储.原创 2021-10-14 15:05:34 · 5456 阅读 · 0 评论