C++关于类的复习,知识点概括

类的声明

Class 类名

Private:

私有数据和成员函数;

Public:

公有成员和函数;

};

 

对象的声明:有3种方式,选择一种稳妥的

类名 对象名;

 

类成员函数的定义:可以在类定义体内定义,用大括号括起来;也可以在类体外定义,内部只做声明;

在外部定义要用作用域限定符 ::目的是规避同名函数

格式为  返回值类型 类名::函数名(参数表){}

 

内置成员函数:内联函数;编译时直接将函数代码编译在程序中,这样可以省去调用函数的开销,提高程序效率。关键字 inline function_declaration;

 

类的成员函数的存储方式:函数存于对象空间之外,同类的对象采用调用的方式访问函数。这样可以节省大量对象创建时的空间。计算对象占用的字节数,要忽略函数,无论是在类内还是类外定义,也不管是不是内联函数,都不占用对象的存储空间。

 

类内部权限设定只允许本对象中成员的函数访问同一对象中的私有数据。类(对象)外只能通过调用public成员函数来引用或修改私有数据成员。由此实现接口与实现分离的思想。

 

对象成员的引用:三种方式,1用 对象名.成员名  2用类的指针获取对象地址,然后用指针加箭头的形式 指针名—>成员名  3 定义类引用 类名 &引用名;使用时 引用名.成员名

 

类的初始化:使用构造函数,不能像C中对结构体或者变量赋值那样赋值,因为类是一个抽象概念,并不占用存储空间。私有成员必须经过成员函数初始化。构造函数是一个与类同名的公有函数。这个构造函数在类建立对象时会自动调用也只能自动调用,而且没有返回类型。

 

构造函数带参数要在类外进行定义,类内声明可以不给形参取名字,构造函数名(类型名,类型名,...,类型名) 定义 类名::构造函数名(类型名 变量名,...,类型名 变量名){...}

声明对象 类名 对象名(变量1,...,变量n)参数初始化表 构造函数名(参数表):成员名(参数名),...,成员名(参数名){}

构造函数可以重载 :改变构造函数参数个数或者类型

构造函数使用默认值:在声明时使用默认值 ex.  Box(int h=10,int w=10,int len=10);好处是减少输入量;生成对象时,使用默认值的实参可以省略。

 

复制构造函数:以同类成员作为形参的构造函数

转换构造函数

 

析构函数:在对象的生命周期结束后释放掉内存,并执行一些操作,其调用次序符合堆栈操作,先构造后析构。局部变量的存储在堆栈中

静态成员变量

 

对象数组:对象数组每一个元素都是同类对象,每个元素都要调用构造函数

定义:类名 数组名[元素数]

 

对象指针:对象空间的起始地址就是对象的指针 数据类型名 *指针变量名;

指向普通函数的指针变量:  类型名 (*指针变量名)(参数列表);

指向类公用成员函数的指针:类型名 (类名::*指针变量名)(参数列表);

为类函数指针赋值:        指针变量名=&类名::成员函数名;

 

This指针 编译系统自动赋值对象首地址。使得对象间共用的函数代码可以指向具体的对象,实现正确的引用。

 

常对象:类名 const 对象名[(实参表)]    const  类名 对象名[(实参表)]

常成员函数:常对象只能调用其常成员函数,常成员函数不能修改对象数据成员的值

 

对象动态建立和释放:ex  BOX *pt =new BOX(12,15,18);  delete pt;

 

静态成员函数:以static定义的成员函数;静态成员函数用来访问静态数据成员,静态成员函数没有this指针,因此不能访问对象中的非静态成员。调用静态成员函数要用类引用方式

 

静态数据成员:不能用参数初始化表进行初始化;静态数据成员只能在类体外进行初始化,

静态数据成员初始化:ex. Float Student::sum=0;

 

友元函数:在类外定义,可以访问私有成员 声明在类的公有成员中进行,ex friend void display(Time&)

友元成员函数:用类引用去声明友元函数 ex friend void Time::dispaly(Date&);

友元类:friend 类名;友元关系是单向的,不可传递的

 

 

继承与派生

Class 派生类名:[继承方式] 基类名   继承方式:public,private,protected

派生类新增加成员

};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值