想文艺一点的程序员
给学习留点痕迹
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ STL学习 —— 模板、泛型算法、函数对象、lambda 表达式(参数捕获)、函数适配器
STL的一些基础概念原创 2022-07-20 00:47:00 · 293 阅读 · 0 评论 -
C++ :1、STL 的容器概述、array容器详解、迭代器初步分析
一、STL的容器类介绍0、铺垫之前分析了模板的语法,我们接下来学习 STL 的使用。对 STL 的使用的核心就是对容器类的使用。在 c++ 当中一切皆对象,所以 容器也是一个类。1、何为容器顾名思义,容器就是盛放东西的东西,这里被盛放的一般是数据对象,用来盛放的是容器类。如何盛放数据,肯定是通过函数来进行管理。容器类的成员函数,就是对容器当中的数据进行操作。计算机中一切皆是数据,数据存储只能在内存中,而容器类是用做容器的内存的管理方法。容器类的内核就是:数据结构 + 算原创 2022-04-09 19:45:41 · 1484 阅读 · 0 评论 -
C++学习:6、C++ 11新特性;C++ 14;C++ 异常;智能指针
目录C++11新特性1、auto2、decltype3、nullptr(null pointer:空指针)4、快速遍历:5、lambda表达式6、lambda 捕获变量7、Lambda表达式 - mutableC++141、泛型 lambda2、对捕获的变量进行初始化C++171、可以进行初始化的if、 switch语句 、异常1、捕捉2、主动抛出3、自定义异常类型4、标准异常智能指针1、自己实现智能指针2、shared_ptr3、weak_ptr4、unique_ptrC++11新特性如何查看我原创 2021-10-09 19:40:21 · 300 阅读 · 0 评论 -
C++学习:5、运算符重载、模板、类型转换
目录运算符重载1、运算符重载(operator overload)2、完善3、更多运算符4、单目运算符5、cout 的重载6、cin 的重载7、调用父类的运算符重载函数8、仿函数(函数对象)9、注意点模板1、函数模板2、编译细节正常函数的编译和链接模板函数的编译和链接3、类模板4、完善类模板类型转换1、const_cast2、dynamic_cast3、static_cast4、reinterpret_cast运算符重载1、运算符重载(operator overload)在 C++ 当中非常重要!!!原创 2021-10-09 19:39:04 · 330 阅读 · 1 评论 -
C++学习:4、拷贝、友元
目录拷贝构造1、拷贝构造函数2、调用父类的拷贝构造函数3、浅拷贝4、深拷贝5、总结拷贝构造函数一些细节1、对象参数和返回值2、匿名对象、临时对象3、隐式构造4、编译器自动生成的构造函数友元1、友元函数2、友元类3、内部类4、局部类拷贝构造1、拷贝构造函数也是一种构造函数,只是比较特殊问题:什么时候调用构造函数? 创建一个对象的时候进行调用。什么时候调用拷贝构造函数? 当利用已存在的对象创建一个新对象时(类似于复制粘贴,生成一个新文件)拷贝构造函数的格式是固定的,接原创 2021-10-09 19:36:43 · 386 阅读 · 2 评论 -
C++学习:3、多态;多继承;static 静态成员;const 成员
目录多态1、重写2、虚函数3、总结多态4、虚函数表5、虚表的汇编6、虚表的细节7、调用父类的成员函数实现8、虚析构函数9、纯虚函数、抽象类多继承1、多继承体系下的构造函数调用2、多继承的虚表3、同名函数、成员变量的调用4、菱形继承5、虚继承6、多继承的应用static 静态成员1、静态成员变量2、静态成员函数3、静态成员汇编分析4、静态成员的继承5、static 的应用6、静态成员经典应用 – 单例模式7、单例模式的完善const 成员1、const 成员变量2、const 成员函数3、引用类型成员前面我原创 2021-10-09 19:35:26 · 326 阅读 · 0 评论 -
C++学习:2、面向对象;内存空间;构造函数;析构函数;程序优化;继承;初始化列表
目录一、面向对象1、类和对象2、对象内存3、this4、封装二、内存空间1、内存空间2、堆内存堆空间的初始化3、成员变量的初始化三、构造函数(constryctor)1、构造函数的调用四、析构函数(Destructor)1、内存清理五、程序优化1、声明和实现分离2、命名空间怎么使用命名空间?思考命名空间的嵌套、合并六、继承1、继承的内存布局2、成员访问权限、继承方式七、初始化列表1、思考:初始化列表的本质2、思考:**初始化的先后顺序**3、初始化列表与默认参数配合使用八、再论构造函数1、构造函数的互相调用原创 2021-10-09 19:33:56 · 266 阅读 · 0 评论 -
C++学习:1、基础语法(cin、cout;函数重载、默认参数、extern “C“、内联、(常)引用、汇编)
C++ 发展史C++ 03 只是修改了一些BUGC++ 11 :majorC++ 17 :major一、基础语法 A1、cin、coutcin、cout 当中的 c 是 console 控制台的意思。endl:end line 结束一行,就是换行的意思。cout:向控制态输出东西,箭头要指向cout。cin:想要从键盘当中读取东西,箭头要指向变量。注意:只要main函数 return,只要 main 结束,控制台就会结束,所以需要 getchar() 来进行阻塞。2、函原创 2021-10-09 19:29:43 · 269 阅读 · 0 评论 -
C++学习:0、概述和环境搭建
目录一、汇编的重要性1、学习建议2、代码本质的挖掘3、编程语言的本质区别二、开发环境的搭建路线大纲:常用语法:面向对象:项目实战:特点:通过反汇编,通过底层来观察 C++ 的本质CPP 的应用领域思考一个问题:既然 C ++ 执行效率这么高,为什么还要出现新的编程语言?所有地方都用 C++ 不就好了吗?首先每一门编程语言都有自己的优缺点,都有自己的擅长的领域。比如 python 适合数学家来进行算法开发,适合分析师进行数据分析,如果让数学家和分析师再学习C++ 那就太原创 2021-10-09 19:32:34 · 146 阅读 · 0 评论 -
C++学习:0、CPP 学习概述
目录一、汇编的重要性1、学习建议2、代码本质的挖掘3、编程语言的本质区别二、开发环境的搭建路线大纲:常用语法:面向对象:项目实战:特点:通过反汇编,通过底层来观察 C++ 的本质CPP 的应用领域思考一个问题:既然 C ++ 执行效率这么高,为什么还要出现新的编程语言?所有地方都用 C++ 不就好了吗?首先每一门编程语言都有自己的优缺点,都有自己的擅长的领域。比如 python 适合数学家来进行算法开发,适合分析师进行数据分析,如果让数学家和分析师再学习C++ 那就太原创 2021-05-19 21:58:13 · 7476 阅读 · 13 评论 -
C++入门学习-------2、命名空间简介、基本输入,输出
Author: 想文艺一点的程序员自动化专业 工科男再坚持一点,再自律一点CSDN@想文艺一点的程序员一、命名空间简介前提设想:一个很大的工程当中,有上百个 cpp 的源文件。 分给不同的人来共同完成,张三和李四写了一个同名函数。 这时候编译就会进行报错。同名实体:同名函数,同名变量,同名的类定义。解决方法:命名空间,系统中我们可以定义多个命名空间,每个命名空间都有自己的名字,不可以同名。大家可以将命名空间可以看成一个作用域,我们在这个命名空间里定义函数,跟你在另一个命名空间中定义一个.原创 2020-07-27 13:38:35 · 273 阅读 · 0 评论 -
C++入门学习-------1、语言特性、可移植性问题
一、语言特性:过程式、对象式程序设计1、面向过程式的程序设计(c语言程序设计) :从上往下,逐步求精,按照顺序将问题一步一步解决;// 结构: 学生, 学号,性别,成绩2、基于对象的程序设计 和 面向对象的程序设计:// 在c++中我们将 结构 称为 类。 结构==类// 将 定义结构体变量 称之为 定义对象。 结构体变量 = 对象// 在c++中我们不仅可以定义 成员变量(学生, 学原创 2020-07-27 08:50:10 · 248 阅读 · 0 评论 -
C++入门学习——0、c/c++语言发展历程
转载于C 语言发展历史C++发展历史1、C 语言发展历史C语言于1972年11月问世,1978年美国电话电报公司(AT&T)贝尔实验室正式发布C语言,1983年由美国国家标准局(American National Standards Institute,简称ANSI)开始制定C语言标准,于1989年12月完成,并在1990年春天发布,称之为ANSI C,有时也被称为 C89 或 C90。C语言之父——里奇在学习C语言之前,我们先了解一下C语言的历史。C语言是一门通用的,模块化,程序化原创 2021-01-06 23:43:11 · 346 阅读 · 0 评论 -
cpp小知识点 —— new 和 delete的误区
描述:int *p = new int;*p = 10;delete p;p 指向一个 4 字节的堆空间。然后将10 赋值给这 4 个空间。回收 p 指向的堆空间(大小为 4 个字节)。误区1:误以为会将指针 p 清除。答:并不会进行清除!!!。误区2:误以为在回收堆空间的时候,会将堆空间的数据清零。答:并不会将数据清零!!!!!回收内存:只是指针 p 再也没有访问这块堆内存的权限了。并不会进行清零。...原创 2021-05-28 15:51:05 · 245 阅读 · 0 评论 -
数组指针
数组指针:int array[] = { 10,20,30 };int(*arrp)[3] = &array;int *arrp[3];注意点:“[ ] ” 比 “ * ” 的优先级别高,如果不加括号的话,就变成了指针数组。定义数组指针的时候必须指定数组的大小。区分:首元素地址、整个数组的首地址。(以上面的数组为例)首元素地址:array = &array[1] int * 类型数组的首地址:&array int(*)[3] 类型...原创 2021-05-24 09:47:41 · 125 阅读 · 0 评论