![](https://img-blog.csdnimg.cn/direct/3f040e432bd845dca1756f2cd5c1f4b3.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++
文章平均质量分 91
C++学习
-指短琴长-
人工智能领域创作者,网络安全爱好者,同时熟练掌握C/C++,熟悉C++网络编程。
展开
-
C++小白的逆袭之路——初阶(第一章:C++入门!)
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。2.细节://命名空间可以起自己名字的缩写//1.正常的命名空间定义//命名空间中可以定义变量/函数/类型int data;int b;//同一个工程中可以出现多个重名的命名空间,编译器最终会将他们合并成一个命名空间//test.h//ps:一个工程中的test.h和上面的test.cpp中的N1会合并成一个。原创 2023-10-16 21:25:56 · 87 阅读 · 1 评论 -
C++小白的逆袭之路——初阶(第二章:类与对象上)
/类体:由成员函数和成员变量组成//...//一定要注意后面的分号1)class为定义类的关键字,Classname为类的名字,{}中为类的主体,注意类定义结束后面的分号不能省略。2)1.类中的变量称为类的属性或成员变量2.类中的函数称为类的方法或成员函数。2.类的两种定义方式:1)声明和定义都放在类体中1.成员函数如果在类中定义,编译器可能会将其当成内联函数处理。原创 2023-10-19 13:43:08 · 88 阅读 · 0 评论 -
C++小白的逆袭之路——初级(第三章:类与对象中)
第三章:类与对象中3.1类的6个默认成员函数3.2构造函数3.3析构函数3.4拷贝构造函数3.5赋值运算符重载3.5.1运算符重载3.5.2赋值运算符重载3.6完整的时期类3.7const成员3.8取地址及const取地址重载3.9重载<<和>>3.1类的6个默认成员函数1.默认成员函数:我们不写,编译器也会自动生成的函数(空类并不空)。2. 6个默认成员函数:1)初始化和清理构造函数主要完成初始化工作。析构函数主要完成清理工作。2)拷贝复制:拷贝构造是原创 2023-10-15 18:25:21 · 106 阅读 · 1 评论 -
C++小白的逆袭之路——初阶(第四章:类和对象下)
1)每一个成员在初始化列表中只能出现一次(初始化只能初始化一次)。原创 2023-10-15 14:56:31 · 74 阅读 · 1 评论 -
C++小白的逆袭之路——初阶(第五章:C/C++内存管理)
如果你认为,new和delete的作用只是将malloc和free语法简化的话,那你的格局就小了。new和delete真正的作用体现在自定义类型中。思考一个问题:使用malloc申请一块空间,里面放自定义类型数据,如何对这块空间初始化?答案是做不到,malloc做不到对自定义类型的初始化,想要显示的调用构造函数也是不可取的(但是构造函数确实可以显示调用,后面再讲)。而newclass Apublic:: _a(a)~A()private:int _a;int main()原创 2023-10-29 19:24:28 · 68 阅读 · 0 评论 -
C++小白的逆袭之路——初阶(第六章:初识模版)
class 类模板名// 类内成员定义2.实例:动态顺序表// 动态顺序表// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public:, _size(0){}// 使用析构函数演示:在类中声明,在类外定义。~Vector();// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表if(_pData)原创 2023-10-31 15:47:28 · 127 阅读 · 0 评论 -
C++小白的逆袭之路——初阶(第八章上:string类相关接口)
在今后的学习中,我们要经常借助一个网站cpluscplus来辅助学习。这是一个C/C++学习的资料网站,上面有各种库,函数的信息。有些时候难免会忘记某些函数的用法,这时我们就可以通过这个网站来进行查询,学习。还有一点,我们要慢慢养成看文档的习惯(看英文文档),提升自己的自学能力。原创 2023-11-11 18:28:26 · 57 阅读 · 1 评论 -
C++小白的逆袭之路——初阶(第八章下:string类模拟实现)
中国的汉字上万,想用一个字节(8bit)来存储显然是不够的,至少也要两个字节,能表示2^16次方个字符,但是有一些生僻字仍然无法表示,还是不够用。很多同学想当然的就把流提取重载写成了这样,发现黑框框会像一个无底洞一样,一直让你输入,不会停止,陷入死循环,这是为什么?不用判断是否自己给自己赋值,而且这种现代写法是通用的,我们只要写好了拷贝构造就可以这样来赋值,对所有的类都是可行的。编码表,实际上是早期,美国根据自己的语言和符号,制定的一个和计算机二进制编码,一一对应的表格,全名叫。并且要注意考虑末尾的。原创 2023-11-16 21:01:33 · 88 阅读 · 0 评论 -
C++小白的逆袭之路——初阶(第九章:vector)
vector是典型的模版实现,类的声明里包含一个参数是模版参数,第二个参数中出现了一个Alloc,这个我们以后会讲,现在先不说。大家只需要知道,Alloc是STL中六大组件中的其中一个,也就是空间配置器,本质就是一个内存池。vector是一个可以动态增长的数组实现的顺序容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。原创 2024-01-05 22:03:01 · 796 阅读 · 0 评论 -
C++大作业——学生选课系统
本次课程设计是我第一次独自完成这样一个相对完整的项目,收获很多。但是我更想说一下本次设计中存在的不足。首先就是在最初设计课程类和学生类时,没有考虑的那么全面,导致出现了很多冗余的接口,和公有私有混着用的情况。其次就是,虽然是用C++写的,却没有把封装体现出来,使用了很多friend友元函数也破坏了类的封装效果。由于我最开始是在Linux系统上编写的代码,没有装中文包,所以很多注释和输出语句都是用英文写的。后来又转到Windows下的VS环境下编程,也写了一些中文的语句。原创 2023-12-29 22:29:42 · 2174 阅读 · 2 评论 -
C++大作业——学生选课系统优化版
本文将具体介绍优化的部分,而不对基本的实现做过多阐述。原创 2024-01-02 23:54:20 · 1018 阅读 · 0 评论 -
C++小白的逆袭之路——初阶(第十章:list)
list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与非常相似:最主要的不同在于是单链表,只能朝前迭代,以让其更简单高效。与其他的序列式容器相比list通常在任意位置进行插入、移除元素的执行效率更好。与其他序列式容器相比,list和最大的缺陷是不支持任意位置的随机访问,比如:要访问list。原创 2024-04-14 22:57:36 · 937 阅读 · 0 评论 -
C++中关于自定义类型的一个特例:具有常属性的临时变量可以使用非const成员函数
本节内容属于拓展,需要大家熟练掌握C++匿名对象,和临时变量的相关知识,再来学习。原创 2024-05-03 16:14:32 · 261 阅读 · 0 评论 -
C++小白的逆袭之路——初阶(第十一章:stack和queue)
stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行,元素的插入与提取操作也只能从一端进行。stack是作为容器适配器被实现的,容器适配器是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素。将特定类作为其底层的,元素在特定容器的尾部(即栈顶)被压入和弹出。stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:empty:判空操作;back:获取尾部元素操作;push_back。原创 2024-05-01 14:11:49 · 648 阅读 · 0 评论 -
C++小白的逆袭之路——初阶(第十二章:模版进阶)
模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生;增强了代码的灵活性。模板会导致代码膨胀问题,也会导致编译时间变长;出现模板编译错误时,错误信息非常凌乱,不易定位错误。原创 2024-05-02 18:32:18 · 1042 阅读 · 1 评论 -
C++小白的逆袭之路——进阶(第一章:继承)
继承()机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。通过继承产生的新类,称为子类或派生类。继承谁谁就是父类,又叫基类。当然子类和父类都是一个相对概念。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。// 父类public:protected:// 姓名// 年龄// 子类public:void fun()Print();原创 2024-05-05 16:35:27 · 856 阅读 · 0 评论