编程语言学习笔记C++
文章平均质量分 78
关于C++的学习笔记
qq_42987967
这个作者很懒,什么都没留下…
展开
-
强制访问C++的private变量
本质上成员的保护权限是编译时去判定的,而在运行时去强行访问私有成员变量那就可以绕过编译时的保护权限约束了。原创 2024-09-19 17:56:25 · 151 阅读 · 0 评论 -
C++中一行中同时定义指针变量与普通变量
【代码】C++中一行中同时定义指针变量与普通变量。原创 2024-02-24 13:52:53 · 404 阅读 · 0 评论 -
std::string和std::wstring无法前向声明
这时候查了一下,发现std::string是typedef的,无法前向声明,这时候只能用include。其主要是考虑到如果为了让string前向声明带来的成本会比直接include还大,因此就没考虑让string能前向声明。在.h文件中需要声明返回类型为std::string的函数,这时候需要声明一下std::string,但是发现报错了。原创 2023-08-04 10:32:37 · 236 阅读 · 0 评论 -
C++碎片化知识点记录(5)
逗号运算符,取最后一个表达式的值进行赋值,但是要把前面每个表达式都计算一遍,所以a=1,b=2,x=3。原创 2022-10-23 13:27:01 · 203 阅读 · 0 评论 -
C++碎片化知识点记录(4)
记录笔试面试中遇到的C++知识点原创 2022-09-18 11:57:10 · 195 阅读 · 0 评论 -
C++碎片化知识点记录(3)
C++碎片化知识点记录(3)记录笔试面试中遇到的C++知识点。原创 2022-08-24 12:29:19 · 347 阅读 · 0 评论 -
C++碎片化知识点记录(2)
这样const int &类型的参数就可以同时接受glvalue和prvalue。7.类的静态数据成员是类内声明,类外定义的,并且不可在构造函数中定义。否则你得写int &和int两个重载,并且实现代码一模一样。4.函数的默认形参值可以在声明时指定也可以在定义时指定。1.在函数中const int&与int &的区别。要理解虚基类表的性质并与虚函数表做对比。6.静态成员函数有this指针吗?5.友元函数有this指针吗?2.函数的嵌套定义与嵌套调用。3.如下代码运行结果。9.菱形继承与虚基类。......原创 2022-08-12 22:04:08 · 430 阅读 · 0 评论 -
C++关于字符串的一点注意事项
如果要安全使用字符数组去表示字符串时,那么最后一位一定不要将其赋值,因为默认为字符数组分配的值便是'\0'。最后一位不赋值能让strlen函数正确读取到有效的字符串长度。原创 2022-08-09 23:37:35 · 575 阅读 · 0 评论 -
C++自己封装一个简易的String类
重载 +=运算符、数组索引运算符[]、输入输出运算符、拷贝构造函数、析构函数、拷贝赋值函数、实现size()函数、原创 2022-08-08 02:51:24 · 548 阅读 · 2 评论 -
C++自己封装的简易的较安全的智能指针
C++面试题(四)——智能指针的原理和实现_普通网友的博客-CSDN博客_智能指针的实现自己实现智能指针_leechow007的博客-CSDN博客_自己实现智能指针C++手把手带你实现一个智能指针 - 知乎c++智能指针中的reset成员函数_lzn211的博客-CSDN博客_c++ reset智能指针shared_ptr reset()_fxlego的博客-CSDN博客_智能指针resetC++重写SharedArrayPtr——指向数组的智能指针类_lzq8090的博客-CSDN博客c++中能否判断一个原创 2022-08-07 23:12:03 · 407 阅读 · 0 评论 -
C++获取变量的类型和名称
C++获取类类型和类名和函数名。注:本文基于vc编译器。原创 2022-08-06 16:50:23 · 3648 阅读 · 0 评论 -
C++碎片化知识点记录(1)
这个是一个比较冷门的知识点,目前个人整理出了几种办法。1.只分配在栈上:对new关键字重载并放在protected域因为C++只有用new的关键字生成的对象才是放在堆上的,现在可以对new进行重载,将其放在private内,这样我们就调用不了new,这样也就可以限制程序将类对象分配到堆里头了。而由于new跟delete是配套出现的,重载new还需要重载delete。参考链接:《More Effective C++》条款27:如何让类对象只在栈(堆)上分配空间?_hxz_qlh的博客-CSDN博客2.只原创 2022-06-21 00:56:48 · 432 阅读 · 0 评论 -
C++常见面试题知识点
以下仅为个人思路,有错还望大家及时指出。参考链接:C++函数调用内存分配机制_zhongguoren666的博客-CSDN博客线程的堆和栈_JackLiu16的博客-CSDN博客_线程是在堆上还是栈上C/C++变量在内存中的分布_MoreWindows的博客-CSDN博客C/C++程序内存的分配_cherrydreamsover的博客-CSDN博客_c++内存分配C/C++动态内存管理malloc/new、free/delete的异同_cherrydreamsover的博客-CSDN博客C/C++动态内存原创 2022-06-12 02:14:12 · 161 阅读 · 0 评论 -
C++的static和extern关键字解析
以下内容有的地方比较深,仅从我个人理解的角度进行分析。信息量比较庞大,请谨慎阅读。一、前置知识1.编译与链接的理解参考:C++的编译总结 - 简书c++编译过程_CSDN_Violin的博客-CSDN博客_c++编译1)编译编译的定义:C++程序的编译主要是按照文件单独进行编译(即以编译单元分块编译),生成目标代码文件。编译过程的输出是一系列的目标文件。所以,在编译其中一个文件中,编译器并不知道其余文件中的内容。编译单元:一个编译单元(TranslationUnit)是指一个..原创 2022-05-22 00:36:43 · 250 阅读 · 0 评论 -
C++使用lambda表达式写递归
参考自:C++ 如何自动推导递归 lambda 函数的类型? - 知乎 auto f1 = []( int j) ->int { if (j == 0)return 0; else return f1(j - 1); };//直接调用lambda表达式本身,lambda无法推断其类型但是用个引用参数引用自己就可以了。感觉其是通过调用的方式来推测出引用的是什么类型 //lambda表达式自身递归调用 auto f1 = [](auto&& me, int j原创 2022-03-28 17:20:48 · 2025 阅读 · 0 评论 -
C++Primer学习笔记(14)
接口与实现分离-Lckfa-博客园接下来接受的部分是也许有点熟悉,但是都是一些模模糊糊的点。看这一块的话可以先不要太钻牛角尖,等整个都看完了再结合例子应该会感觉恍然大悟。为什么基类的析构函数要加virtual呢?得先记住这个疑问。1)成员函数与继承2)访问控制与继承大致说明了下访问说明符1)派生类中的虚函数2)派生类对象及派生类向基类的类型转换举例说明通过理解不同的对象指针的函数调用可以理解这个动态绑定的过程。public};//};//};classsonpublic}......原创 2022-07-22 23:30:48 · 289 阅读 · 0 评论 -
C++Primer学习笔记(11)
关注点有这几个:全局对象、局部对象、局部static对象、动态对象。提炼一下:静态内存、栈内存、自由空间(堆)。不同的内存空间有相对应的对象。一、动态内存与智能指针都是重点,每一句话都值得去记忆领会。1.shared_ptr类1)make_shared函数举例: shared_ptr<int> sp = make_shared<int>(7)...原创 2022-03-01 22:50:45 · 650 阅读 · 0 评论 -
C++Primer学习笔记(13)
这篇笔记的内容是重载运算与类型转换。这是一个从越来越底层的角度去理解一个更抽象高层的知识。一、基本介绍与引入1)直接调用一个重载的运算符函数这告诉我们可以直接调用重载后的运算符函数的。举个例子class test {public: test(int v) { val = v; }; test& operator+(int a) { val += a; return *this; } int val;};void main(){ t..原创 2022-03-09 23:54:02 · 739 阅读 · 0 评论 -
C++Primer学习笔记(12)
这篇文章的内容是拷贝控制。接下来这一系列将开始着重介绍C++的面向对象特性了,并且将是以更深入的角度去理解其面向对象特性。总结:当我们还没进阶,不需要维护较大的工程时,我们往往不用在意拷贝控制操作,毕竟编译器已经帮我们补充了缺失的操作了,并且通常情况下是不会出现问题的。但是当我们想要进阶,那么有必要深入了解一下了。一、拷贝、赋值与销毁1.拷贝构造函数1)合成拷贝构造函数以上通过举例介绍合成拷贝构造函数的运行流程。2)拷贝初始化3)参数和返回值..原创 2022-03-04 23:46:10 · 529 阅读 · 0 评论 -
C++Primer学习笔记(10)
这篇文章的内容是关联容器。顺序容器靠位置索引,关联容器靠关键字索引。原创 2022-02-25 20:30:05 · 688 阅读 · 0 评论 -
C++Primer学习笔记(9)
这篇文章的内容是泛型算法。要开始进阶了。泛型 --一个能提高程序复用度的利器。一、概述二、初识泛型算法三、定制操作四、再探迭代器五、泛型算法结构六、特定容器算法...原创 2022-02-15 00:03:49 · 758 阅读 · 0 评论 -
C++Primer学习笔记(8)
这篇文章的内容是顺序容器。相较之前的C++Primer学习笔记(2)_qq_42987967的博客-CSDN博客,之前的章节注重介绍一些基本的操作和使用。而本章节更注重顺序容器的实现原理和更详细的操作。标准库中的容器一般分为两种:顺序容器和关联容器。建议可以把本章节当作工具书来使用。一、顺序容器概述1.基本介绍顺序容器中的两个注意矛盾是:随机访问支持任意位置增删的矛盾,以数组和链表为代表。想要能随机访问那么增删所带来的时间和空间消耗就会变大,想要想增删方便那么就...原创 2022-01-28 15:14:06 · 1110 阅读 · 0 评论 -
C++Primer学习笔记(7)
这篇的内容是关于IO库。之前的6章笔记讲的是C++的基本入门知识,接下来的内容是C++标准库,是关于如何使用标准库及其原理。一、IO类1.IO类型1)常见的几种IO类型2) IO类型之间的关系2.IO对象不可拷贝或赋值3.条件状态就个人而言,至此,对流的理解更深入了一些,流不仅仅是以前简单输入输出了。1)查询流的状态个人表示还没看太懂。 感觉大概意思就是介绍一些记录流状态的标志位。2)管理条件状态即介绍如何管理相应的流状态标志...原创 2022-01-22 21:02:42 · 790 阅读 · 0 评论 -
C++Primer学习笔记(6)
这篇的内容是关于类。原创 2022-01-21 03:03:54 · 535 阅读 · 0 评论 -
C++Primer学习笔记(5)
这篇笔记的内容是函数。1)编写与调用2)形参与实参关于形参实参可参考:形参与实参的区别_百度知道关于形参实参最精髓的一条就是:形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。 函数的形参怎么写这一点是容易疏忽的。关键词:作用域、生命周期、局部变量1)自动对象2)局部静态对象 实测,静态局部static变量确实是不会被销毁的。测试代码如下: 3.函数声明 简单理解就是头文件里为声明,源文件里原创 2022-01-06 14:14:55 · 524 阅读 · 0 评论 -
C++Primer学习笔记(4)
这篇笔记的内容是语句。一、简单语句感觉没啥好讲的,简单语句就是顺序执行的语句。二、语句作用域这个也没啥好说的了。三、条件语句1.if语句重点就是记得加上花括号。还有就是else是跟最近的if匹配的。2.switch语句可以参考:C++ switch 语句 | 菜鸟教程比较值得注意的是条件合并后的case该怎么用。举几个例子: switch (i) { case 'a': case 'b': cout << "a or b" <.原创 2021-12-22 22:15:52 · 713 阅读 · 0 评论 -
C++Primer学习笔记(3)
这篇笔记的内容是表达式。一、表达式的基本概念1.基本概念值得注意的是函数也是一种运算符。符号的运算符类型是编译器根据上下文来决定的。常见的运算符的作用有:组合运算、运算对象转换、重载运算符、左值和右值。其中有一个值得注意的是:decltype在使用指针类型时如下,即decltype中放指针时需要注意,其赋值的是引用,而不是int。 int a=1,* p=&a; decltype(*p) delc1=*p; decltype(p) delc2...原创 2021-12-15 17:36:30 · 1082 阅读 · 0 评论 -
C++Primer学习笔记(2)
这篇笔记的内容是字符串、向量和数组。字符串和向量都是抽象数据类型,而数组则相对更基础,个人认为算是介于抽象数据类型和基本内置类型之间吧。一、命名空间的using声明在之前(1)的笔记中给出过using跟include区别的链接。个人认为namespace的作用范围要比include大的。如果要进一步了解namespace参考:C++/C++11中命名空间(namespace)的使用_网络资源是无限的-CSDN博客注意的是:还有就是我们经常只使用using namespace std.原创 2021-12-07 16:37:26 · 720 阅读 · 0 评论 -
C++Primer学习笔记(1)
开启C++Primer学习之旅,因为之前学过了谭浩强的C语言和C++,有一定的C++皮毛基础了,所以这个笔记系列就主要是再进阶一步,会记一些之前没理解清楚的知识。当然,学的时候尽量感觉自己智商低一点吧,因为这只是一本入门书(狗头)这篇笔记的内容是变量与基本类型。一、基本内置类型1.算术类型2.字面值常量2.1 定义:即数据类型所对应的值。包含整型和浮点型字面值,字符和字符串字面值、布尔字面值、指针字面值、转义序列等等。比较要注意的是转义序列二、变量1...原创 2021-11-15 23:40:10 · 957 阅读 · 0 评论