c++学习基础
入门c++基本语法 以及小项目
九十岁也要程序猿
这个作者很懒,什么都没留下…
展开
-
c++智能指针
全部都是由于一个原因——它能自动释放自身所指向的内存。首先,程序员不必管理它所定义的每一个指针,内存释放的工作交给了智能指针进行,这让程序员们们偷懒了许多。第二,智能指针是一种资源管理类,他们能够自行掌控自己的内存让程序能够正常的工作。,引入了智能指针的概念。智能指针的行为类似常规指针,重要的区别是它负责自动释放所指向的对象。原创 2023-04-03 20:01:35 · 20 阅读 · 0 评论 -
c++之关联容器
【代码】c++之关联容器。原创 2023-04-03 19:07:44 · 33 阅读 · 0 评论 -
c++ STL之向量vector
【代码】c++ STL之向量vector。原创 2023-03-31 17:29:16 · 44 阅读 · 0 评论 -
c++模板函数和模板类
【代码】c++模板函数和模板类。原创 2023-03-31 11:41:31 · 25 阅读 · 0 评论 -
c++迭代器
【代码】c++迭代器。原创 2023-04-03 19:25:15 · 30 阅读 · 0 评论 -
c++多态详解
*1.重写/覆盖 的要求**重写/覆盖: 子类中有一个跟父类完全相同的虚函数,子类的虚函数重写了基类的虚函数即:子类父类都有这个虚函数 + 子类的虚函数与父类虚函数的 函数名/参数/返回值 都相同 -> 重写/覆盖(注意:参数只看类型是否相同,不看缺省值)**2.多态两个要求:**1、被调用的函数必须是虚函数,子类对父类的虚函数进行重写 (重写:三同(函数名/参数/返回值)+虚函数)2、父类指针或者引用去调用虚函数。原创 2023-03-30 20:55:29 · 39 阅读 · 0 评论 -
c++ 多继承和多重继承
虚继承:多个派生类保存相同基类的同名成员时,虽可以在不同的数据成员中分别存放不同的数据 ,但我们只需要相同的一份。问题二: 二义性,通过D去调用A里面的方法有两条途径(一条通过B调用,还有一条通过C调用)问题一: 创建D类对象的时候,A会被构造多次(浪费了存储空间)构造函数以及析构函数调用规则见前面博客。解决了多父类重复成员只保留一份的问题。通过虚继承就可以解决上面多重继承问题。以下图例就是多重继承。原创 2023-03-30 20:05:15 · 81 阅读 · 0 评论 -
c++组合和继承的区别
若在逻辑上A 是B 的“一部分”(a part of),则不允许B 继承A 的功能,而是要用A和其它东西组合出B。例如眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部分,所以类Head 应该由类Eye、Nose、Mouth、Ear 组合而成,不是派生而成。(1)若在逻辑上B 是A 的“一种”(a kind of ),则允许B 继承A 的功能。如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。原创 2023-03-30 19:48:05 · 61 阅读 · 0 评论 -
c++ 继承以及析构和构造函数过程
【代码】c++ 继承以及析构和构造函数过程。原创 2023-03-29 18:39:40 · 32 阅读 · 0 评论 -
c++ 重载运算符
【代码】c++ 重载运算符。原创 2023-03-29 09:42:13 · 29 阅读 · 0 评论 -
c++ static 与const用法详解
static成员变量属于整个类(因此在创建对象前就产生了,也必须初始化,不然链接阶段会出现bug),程序结束时释放内存,成员数据变量可以访问静态成员变量。公有静态数据成员可以直接访问,但私有静态成员变量不行。static修饰成员变量。static修饰成员函数。static修饰成员变量。static修饰成员函数。静态函数需要注意的点。原创 2023-03-28 18:40:14 · 149 阅读 · 0 评论 -
c++友元函数和友元类
缺陷是破坏了c++的封装性。原创 2023-03-29 09:27:55 · 25 阅读 · 0 评论 -
c++拷贝函数
【代码】c++拷贝函数。原创 2023-03-27 19:06:38 · 43 阅读 · 0 评论 -
c++ explicit 禁止隐式类型转换
【代码】c++ explicit 禁止隐式类型转换。原创 2023-03-27 19:13:25 · 185 阅读 · 0 评论 -
c++之析构函数
如果不手动销毁对象指针,程序运行结束时,编译器不会进行处理,操作系统会直接进行内存回收,但是不会调用析构函数。无参数,返回值,但有this指针。一个类只有一个析构函数,不能重载。析构函数不能用const修饰。原创 2023-03-27 19:30:14 · 51 阅读 · 0 评论 -
c++带默认参数的函数,带占位参数的函数
带默认参数的函数的定义:定义函数时可以给形参指定一个默认值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。3.实参和形参的传值是从左到右依次匹配的,默认参数的连续性是保证正确传参的前提。2.一旦为某个形参指定了默认值,那么他后面的所有的形参都会必须有默认值。带占位参数的函数的定义:c++函数的形参可以有占位参数,用来占位,调用函数时必须填补该位置。4.声明与实现只需要在某个一处进行默认参数说明,无需两处进行说明。规则:1.默认参数只能放在形参列表的最后。原创 2023-03-27 19:53:10 · 48 阅读 · 0 评论 -
c++构造函数(特殊的成员函数)
这样的类也满足编译器需要合成默认构造函数的类,原因是含有虚函数的类对象都含有一个虚表指针vptr,编译器需要对vptr设置初值以满足虚函数机制的正确运行,编译器会把这个设置初值的操作放在默认构造函数中。这种情况有两种情况:1.类本身自己定义了自己的虚函数 2.类从继承体系中继承了虚函数(成员函数一旦被声明为虚函数,继承不会改变虚函数的”虚性质")虚继承也会在子类对象中被合成一个指向虚基类的指针,因此也要被初始化,所以必须要构造函数,虚基类或者虚继承保证子类对象中只有一份虚基类的对象。pointer p;原创 2023-03-27 12:57:07 · 98 阅读 · 2 评论 -
c++函数的重载
避免与带有默认的函数进行重载,实例化对象的时候,调用此函数时候会产生错误。原创 2023-03-27 20:03:17 · 30 阅读 · 0 评论 -
c++引用
定义:引用变量是一个别名,也就是说,他是某个已存在变量的另一个名字,一旦把引用初始化为,某个变量,就可以使用该引用名称或变量名称来指向变量。等号右边的值且不可以取地址-------取地址表达式(&a);2.函数返回值:返回的数据不可以为局部变量,返回值可以作为左值。等号左边的值或可以取地址-------解引用表达式*p。3.对指针引用(类型保持一致!4.对数组引用(保持了类型一致)原创 2023-03-27 20:31:31 · 86 阅读 · 0 评论 -
c++ namespace以及using用法
原创 2023-03-27 13:18:49 · 36 阅读 · 0 评论 -
c++之深拷贝与浅拷贝
【代码】c++之深拷贝与浅拷贝。原创 2023-03-27 19:19:48 · 40 阅读 · 0 评论