Cukor丘克
最坏的结果不过是大器晚成。
展开
-
[22] C++命名空间namespace
C++命名空间namespace文章目录C++命名空间namespacenamespace的基本概念namespace的要点和主函数同文件下的命名空间不和主函数同文件下的命名空间命名空间定义和声明写在一块命名空间定义和声明不写在一块含有自定义类型的命名空间和主函数同文件下不和主函数在同文件下的namespace的基本概念namespace被翻译过来是命名空间或者名称空间。namespace的主要作用是将代码区域化。在开发的过程中可能会存在命名相同的情况,这个时候如果使用了namespace将代码划分起原创 2021-11-16 18:19:24 · 804 阅读 · 0 评论 -
[21] C++STL容器篇之栈
C++STL容器篇之栈文章目录C++STL容器篇之栈包含是的头文件STL中stack的一些成员函数简单的时候一下栈stack自己简单封装一下STL的stackMyStack.hpp中主函数所在的源文件中对于栈这个数据结构已经是熟悉得不能再熟悉了,在C语言的时候实现过,在C++的STL里的栈stack封装得也很好,会栈的基本使用即可。包含是的头文件C++标准输入输出头文件STL栈的头文件#include <iostream>#include <stack>STL中原创 2021-10-25 14:14:03 · 208 阅读 · 0 评论 -
[20] C++智能指针
C++智能指针文章目录C++智能指针什么是智能指针?智能指针的特性智能指针都有哪些?如何创建智能指针对象智能指针类中的一些成员函数shared_ptrweak_ptrunique_ptr什么是智能指针?智能指针就是管理指针的模板类,被包含在memory头文件中,使用智能指针的时候必须包含这个头文件。智能指针的特性自动释放内存,不再需要程序员手动释放内存。智能指针都有哪些?智能指针在C++11之前有四个现在只有三个,auto_ptr已经被删除了。剩下的三个智能指针分别是:shared_pt原创 2021-10-22 12:07:47 · 176 阅读 · 0 评论 -
[19] C++STL容器篇之list简单模拟
C++STL容器篇之list简单模拟其实就是双向链表,然后使用C++封装而且,底层代码就是双向链表,直接看代码就好。.hpp文件#pragma#include <iostream>using namespace std;template <class Ty>struct Node{ Node<Ty>* left; Ty data; Node<Ty>* right; Node(Ty data) :data(data), left(nul原创 2021-10-11 23:56:56 · 93 阅读 · 0 评论 -
[18] C++STL容器篇之链表list
C++STL容器篇之链表list文章目录C++STL容器篇之链表listC++STL的list的底层原理list的创建方式list的遍历方式list的一些常用的成员函数主函数测试一下C++STL的list的底层原理其实它的底层就是数据结构的双向链表。可以从头遍历,也可以从尾遍历的那个,但不是循环的。在STL中就把这样的一个双向链表封装成一个类,方便开发人员直接使用,避免重复造轮子。list的创建方式关于list的方式,这就要看list这个类的里面有多少个构造函数了。事实就是有很多种。以下的创建方原创 2021-10-10 14:14:50 · 397 阅读 · 0 评论 -
[17] C++STL容器篇之向量vector
C++STL容器篇之向量vector文章目录C++STL容器篇之向量vector什么是向量向量vector和数组array的区别向量vector和链表的区别向量的基本用法需要包含的头文件vector的创建方式vector的访问方式vector的遍历方式向量的一些基本成员函数简单地使用一下vector什么是向量在C++中向量是一个可以存放数据的容器,并且这个容器可以自动扩展(这一点和定长数组就有区别)。向量vector和数组array的区别从肉眼就能直接看到的区别就是,数组array是定长的,在创建原创 2021-10-04 16:25:56 · 263 阅读 · 0 评论 -
[16] C++STL容器篇array的手动实现(简单模拟)
C++STL容器篇array的手动实现(简单模拟)文章目录C++STL容器篇array的手动实现(简单模拟)需要包含的头文件实现的头文件格式开始封装MyArray简单测试学过了C++STL的容器array,其实想更准确地理解它,最好是看它源码,然后自己手动实现,这样进步就比较快,而且也知道它内部实现结构。那就开始吧。需要包含的头文件C++标准输入输出流头文件:#include <iostream>实现的头文件格式因为C++STL的array是模板,所以自己实现的时候也需要用模板来原创 2021-09-30 20:16:15 · 247 阅读 · 0 评论 -
[15] C++STL容器篇之定长数组
C++STL容器篇之定长数组文章目录C++STL容器篇之定长数组最原始的数组STL的定长数组需要包含的头文件:定长数组的声明和定义:访问方式:遍历方式:结合自定义类型STL定长数组的一些成员函数STL定长数组还有一个比较没用的操作C++的STL可以说是C++最难学的部分了,尽量用简单的语言把C++STL说清楚。C++的STL建立在C++模板之上,STL是Standard Template Libary的缩写,中文名叫标准模板库。STL有很多容器,然后也有对应的算法。从容器开始入手。最原始的数组这里原创 2021-09-28 19:27:03 · 244 阅读 · 0 评论 -
[14] 初识C++STL(简单介绍)
初识C++STL(简单介绍)什么是泛型程序设计泛型编程就是编写不依赖于具体数据类型的程序。C++中,模板是泛型程序设计的主要工具。泛型程序设计的主要思想是将算法从特定的数据结构中抽象出来,使算法成为通用、可以作用于各种不同的数据结构。也就是,同一个模板,能做的功能差不多,数据结构不同的时候就有对应的模板使用,避免重复造轮子。什么是STLSTL,就是Standard Template Library的简称。中文翻译过来就是"标准模板库"。1994年被纳入C++标准库。从此,STL是C++内容的一大部分原创 2021-09-26 19:58:15 · 101 阅读 · 0 评论 -
[13] C++可变参模板函数和可变参模板类
C++可变参模板函数和可变参模板类文章目录C++可变参模板函数和可变参模板类可变参模板函数列表的写法递归的写法可变参模板类递归的方式继承的方式展开参数包可变参模板函数两种写法:列表的写法递归的写法函数的参数:类型任意,因为是模板个数任意,因为是可变参列表的写法//作为中间踏板的函数template <class T>函数返回值类型 函数名1(T agrc){ 函数体}template <class ...Args>函数返回值类型 函数原创 2021-09-15 21:55:15 · 130 阅读 · 0 评论 -
[12] 初识C++模板
C++模板文章目录C++模板函数模板类与类之间使用函数模板的比较显式调用与隐式调用存在多个未知类型的函数模板调用情况函数模板的注意点:类模板类模板的基本概念类模板的特化模板类的嵌套写C/C++代码的时候总是会存在重复造轮子的情况,C++就比较好一点,函数有重载的特性,可以减少一些代码量,而C语言就真的要自己一个个写出来。C++还有一个强大的工具,就是模板(template)。模板可以减少大量的代码量。C++模板有分有函数模板和类模板。函数模板没有模板之前,写同一个实现的功能,需要写重载函数,有了函数原创 2021-09-07 22:56:43 · 171 阅读 · 0 评论 -
[11] C++抽象类、多态和虚析构函数
C++抽象类、多态和虚析构函数文章目录C++抽象类、多态和虚析构函数抽象类多态虚析构函数抽象类了解什么是抽象类之前,先知道一下什么是存虚函数,虚函数前面已经说过了。在类中的成员函数使用virtual修饰的函数就是虚函数,没有虚构造函数,有虚析构函数。纯虚函数一种特殊的虚函数。纯虚函数没有函数体,继承到子类的时候,需要重写这个纯虚函数才能创建子类对象。纯虚函数是一种特殊的虚函数纯虚函数没有函数体具有至少一个纯虚函数的类是抽象类。抽象类的写法:class 类名{ ····原创 2021-08-30 13:50:01 · 172 阅读 · 0 评论 -
[10]C++虚函数表 Cukor丘克 2021-08-25
虚函数表Cukor丘克文章目录虚函数表虚函数:查看虚函数:用二维数组的理解方式去理解虚函数表在写虚函数的时候,会有一个虚函数表,人看不见,只有编译器懂。这里就深入“一点”研究一下。虚函数:使用virtual修饰的成员函数是虚函数没有虚构造函数,可以存在虚析构函数一个类中仅有一个或多个虚函数时,统计类的大小是4代码测试第三个要点:#include<iostream>using namespace std;class test{public: virtual原创 2021-08-25 17:07:37 · 86 阅读 · 0 评论 -
[9]C++入门 类的继承同名问题与虚概念 2021-08-24
继承的同名问题与虚概念文章目录继承的同名问题与虚概念继承同名问题虚概念:virtual虚函数虚继承继承同名问题所谓的同名问题就是,从父类中继承下来的属性和子类自己本身就有的属性发生了同名的问题。我们研究的就是其中的访问问题。在子类的成员函数中直接访问同名属性,优先访问子类自己的属性this指针无法确定,所以优先是子类的自己的属性要访问父类继承下来的属性就只能通过类名显式访问直接看代码测试:#include<iostream>using namespace std;cla原创 2021-08-24 00:17:28 · 74 阅读 · 0 评论 -
[8]C++入门 类的继承(下) 2021-08-21
类的继承(后续内容)文章目录类的继承(后续内容)继承的传递性多继承继承中的特殊成员静态数据成员静态成员函数继承的传递性内容很简单,就是A继承给B,然后B又继承给C,·······这种情况就是继承的传递,就像是先有的爷爷,然后有的爸爸,再然后才有现在的你一样,然后你可能还会有下一代,然后下一代又有下下一代等。在C++中,类的继承也是如此,但是在程序中避免出现这样的情况,要不然类会显得很臃肿。直接上代码看看。#include<iostream>using namespace std;原创 2021-08-21 21:12:33 · 92 阅读 · 0 评论 -
[7]C++入门 类的继承(上) 2021-08-20
类的继承文章目录类的继承类的继承基本概念继承方式继承的写法继承的权限访问继承的构造写法C++面向对象编程的三大特性:封装继承多态面向对象的程序设计中提供了类的继承机制,允许程序员在保持原有类特性的基础上,进行更具体、更详细的类的定义。使用最简单的白话说,封装好了一个类,后期的使用的时候发现这个类好像有些东西是没有的,然后就向重新创建一个比较完善的类,从而满足程序员的开发需求。但是原有的类是小规模的,重写是还可以的,但如果类已经很是规模了重新写一个大部分功能重叠的类然后再添加新东西,那开发效率原创 2021-08-20 01:20:24 · 94 阅读 · 0 评论 -
[6]C++入门 运算符重载(下) 2021-08-18
C++运算符重载(下)文章目录C++运算符重载(下)C++运算符特殊重载C++运算符流重载运算符重载之隐式转换默认的 '=' 重载运算符重载加常量C++运算符特殊重载自增(++)、自减(–)的重载关键在于前置和后置的区别后置的 ‘++’ 或 ‘–’ 在写重载的时候需要一个无用的参数来标识直接上代码吧#include<iostream>#include<string>using namespace std;class MM{public: MM(string原创 2021-08-18 23:17:56 · 126 阅读 · 0 评论 -
[5]C++入门 运算符重载(上)2021-08-13
C++运算符重载文章目录C++运算符重载运算符重载方式运算符重载的隐式调用和显式调用隐式调用显式调用注意项:简单的案例赋予运算符新的含义,让运算符直接操作自定义类型(类或结构体)。在C++中运算符能直接操作基本数据类型,但是不能直接操作自定义类型,所以为了方便开发人员的开发,就出现了运算符重载的概念,达到快速开发的效果。运算符重载方式友元函数重载类的成员函数重载重载的基本语法:重载函数的返回值类型 operator 要重载的运算符(参数) { 函数体 ;}参数个数:友元重载 重载函原创 2021-08-13 19:30:59 · 81 阅读 · 0 评论 -
[4]C++入门 数据类型的共享和保护、友元、静态 2021-08-12
C++数据的共享和保护对象生命周期静态生命周期定义:**如果对象的生命周期于程序的运行期相同,那么它就是具有静态生命周期。**在文件作用域中声明的对象都具有静态生命周期。(通俗点,就是全局变量是是静态的,直到程序运行结束才死亡),如果在函数中的局部作用域中声明具有静态生命周期的对象,则要加上关键字static。(通俗点,加了staitic的变量是静态变量,直到程序运行结束才死亡)。这个在C语言中也有过这样的定义。在C++中仍然沿用这样的定义方式。上代码:#include<iostream&g原创 2021-08-12 22:56:50 · 171 阅读 · 0 评论 -
[3]C++入门 类与对象、构造函数、析构函数 2021-07-31
C++入门04,类与对象文章目录C++入门04,类与对象面向对象程序设计的基本特点类和对象类的定义类的成员访问控制(权限限定)类的成员函数程序实例构造函数和析构函数构造函数默认构造函数委托构造函数拷贝构造函数析构函数对构造函数和析构函数的简单小结default、delete函数类的组合组合前向引用声明面向对象程序设计的基本特点一、抽象抽象就是一种只可意会不可言传的感觉。面对现实的事物,我们都可以知道这个事物的一些基本的特性,抽象就是对这种事物的一些概括。抽象就是抽出一类对象的公共性质并加以描述的原创 2021-07-31 18:59:00 · 219 阅读 · 2 评论 -
[2]C++入门 自动推断类型到动态内存申请new 2021-07-28
C++入门02文章目录C++入门02自动推断类型主要两种自动推断的类型获取自动推断类型的关键字string类的基本用法C++的结构体和类结构体类三种权限限定词C++的动态内存申请部分C语言中C++中自动推断类型主要两种自动推断的类型autoC语言中的auto是一种自动的存储类型,就是系统默认的,在C语言中auto不是很常用,C++做了修改后,auto就在C++中展示了优点使用时一定要初始化,因为auto是根据初始化的值去推断数据的类型auto j=100; //auto推断出j是原创 2021-07-28 22:55:41 · 203 阅读 · 0 评论 -
[1]C++入门 HelloWorld 2021-07-28
C++入门01文章目录C++入门01C++和C的区别最简单的C++程序C++的基本输入和输出命名空间 namespaceC++新数据类型C++函数上面的改变C++和C的区别在学C++之前先学习了C语言。而C++又包含C,并且C++在C的基础上添加了面向对象的特性。C++和C的区别有很多,这里简单介绍几点:C语言的源文件是以.c作为后缀,C++的源文件是以.cpp作为后缀C语言的标准头文件是stdio.h,C++的标准头文件是iostreamC语言的头文件是以.h结尾,C++保留C的原创 2021-07-28 22:15:06 · 394 阅读 · 0 评论