
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
语法:数据类型 &别名 = 原名。
C++程序在执行时,将内存大方向划分为4个区域1、代码区:存放函数体的二进制代码,由操作系统进行管理的2、全局区:存放全局变量和静态变量以及常量3、栈区:编译器自动分配释放,存放的数的参数值,局部变量等4、堆区:由程序员分配和释放,若程多员不释放,程序结束时由操作系统回收。
C++中函数的形参列表中可以有占位参数,用来做占位,调用函数时必须填补该位置。③函数参数类型不同 或者 个数不同 或者 顺序不同。3、注意:函数返回值不可以作为函数重载的条件。语法:返回值类型 函数名(数据类型){ }1、作用:函数名可以相同,提高复用性。(占位参数还可以有默认参数)函数重载碰到函数默认参数。
C++面向对象的三大特性为:封装、继承、多态C++认为万事万物都皆为对象,对象上有其属性和行为例如:人可以作为对象,属性有姓名、年龄、身高、体重.,行为有走、跑、跳、吃饭、唱歌...车也可以作为对象,属性有轮胎、方向盘、车灯…行为有载人、放音乐、放空调...具有相同性质的对象,我们可以抽象称为类,人属于人类,车属于车类。
语法:struct 结构体名 { 结构体成员列表 };通过结构体创建变量三种方式1、struct 结构体名 变量名(struct可省略)2、struct 结构体名 变量名 = { 成员1值,成员2值... }(struct可省略)3、定义结构体时顺便创建变量int age;int score;}s3;//3、定义结构体时顺便创建变量//1、struct 结构体名 变量名(struct可省略)
1、多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构函数。1、在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写内容。5、纯虚析构语法:virtual ~类名()=0 类名::~类名(){}①静态多态:函数重载和运算符重载属于静态多态,复用函数名。②如果子类中没有堆区数据,可以不写为虚析构或纯虚析构。②子类必须重写抽象类中的纯虚函数,否则也属于抽象类
运算符重载概念:对已有的运算行程序进行定义,赋予其另一种功能,以适应不同的数据类型。
在上诉代码中,如果T的数据类型传入的是像Person这样的自定义数据类型,也无法正常运行。建立一个通用模版,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。因此C++为了解决这些问题,提供模版的重载,可以为这些特定的类型提供具体化的模版。在上诉代码中提供的赋值操作,如果传入的a和b是一个数组,就无法实现了。①利用函数模版封装一个排序的函数,可以对不同数据类型数组进行排序。②函数模
对象的初始化和清理工作是编译器强制要我们做的事情,因此如果我们不提供构造和析构,编译器会提供编译器提供的构造函数和析构函数是空实现,this指针指向被调用的成员函数所属的对象。c++利用了构造函数和析构函教解决上述问题,这两个的数将会被编译器自动调用,完成对象初始化和清理工作。1、构造函数:主要作用在于创建对象时为对象的成员属性赋值,构造函数有编译器自动调用,无需手动调用。④程序在调用对象时候会自







