C/C++
文章平均质量分 88
C、C++
candcplusplus.
这个作者很懒,什么都没留下…
展开
-
【C++】C++之继承
继承的概念继承机制是面向对象程序设计使代码可以复用的最重要的手段,他允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生的新类称为派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。总结:1.基类的private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到派生类对象当中,但语法上限制派生类对象不管在类内还是类外都不能访问他。2.基类的private成员在派生类中是不能原创 2022-07-12 22:32:38 · 97 阅读 · 0 评论 -
【C++】模板、STL、浅拷贝和深拷贝、string类模拟实现
泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。函数模板:函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。函数模板格式:template返回类型值 函数名(参数列表){}函数模板的实例化隐式实例化和显示实例化一个非模板函数可以和一个同名的函数模板同时存在,而且该函数模板还可以被实例化为这个非模板函数对于非模板函数和同名函数模板,...原创 2022-07-11 16:38:28 · 207 阅读 · 0 评论 -
【C++】C/C++内存分布、C/C++动态内存管理方式、内存泄漏
说明1.栈幼又叫堆栈,存放非静态局部变量、函数参数、返回值等,栈是向下增长的2.内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可以使用系统接口共享内存,做进程间通信。3.堆用于程序运行时动态内存分配,堆是向上增长的4.数据段存放全局数据和静态数据5.代码段存放可执行的代码和只读常量malloc,calloc,realloc和freemalloc,calloc,realloc区别malloc()表示在内存的动态存储区中分配一块长度为size字节的连续区域,参数size为需要原创 2022-07-10 11:37:24 · 136 阅读 · 0 评论 -
【C++复习】1、explicit关键字 2、static成员 3、友元 4、内部类
构造函数不仅可以构造与初始化对象,对于单个参数的构造函数,还具有类型转换的作用。运行结果:单参构造函数:_year=2018单参构造函数:_year=2090上述代码的可读性不是很好,用explicit修饰构造函数,将会禁止但参构造函数的隐式转换,以上程序会出错。概念:声明为static的类成员称为类的静态成员,用static修饰的成员变量称为静态成员变量;用static修饰的成员函数称之为静态成员函数。静态的成员变量一定要在类外进行初始化。static修饰局部变量改变了变量的生命周期,让静态局部原创 2022-07-09 21:28:01 · 65 阅读 · 0 评论 -
【C++复习】1、拷贝构造函数 2、赋值运算符重载3、const成员
什么是拷贝构造函数?构造函数只有单个形参,该形参是对本类类型对象的引用(一般用const修饰),在用已存在的类类型创建新对象时由编译器自动调用。拷贝构造函数的特点1.拷贝构造函数时构造函数的一个重载形式2.拷贝构造函数的参数只有一个且必须使用引用传参,使用传值会引发无穷递归调用3.若未显示定义,系统生成默认的拷贝构造函数。对内置类型成员,默认的拷贝构造函数会完成按字节序的拷贝,这种拷贝我们叫做浅拷贝或值拷贝。对于自定义类型,会调用它的默认拷贝构造函数。4.编译器生成的默认拷贝构造函数已经可以原创 2022-07-09 15:23:46 · 425 阅读 · 0 评论 -
【C++复习】1、结构体对齐 2、大小端 3、this指针 4、构造函数 5、析构函数
为什么存在结构体内存对齐1.平台原因不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出异常。2.性能原因数据结构尤其是(尤其是栈)应该尽可能的在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要做两次内存访问;而对齐的内存仅需要一次内存访问。1.第一个成员在与结构体偏移量为0的地址处。2.其它成员变量要对齐到某个数字(对齐数)的整数倍的地址处。注意:对齐数=编译器默认的一个对齐数与该成员大小的较小值。VS中默认的对齐数为8.原创 2022-07-08 17:20:46 · 270 阅读 · 0 评论