语言开发-C++基础(封装)
1.对象的创建与销毁
1.在栈中创建对象
类名 对象名;
类名 对象名(初始值);
类名 对象数组名[元素个数] = {构造函数(初始值),...};
类名 对象 = 构造函数(初值);
2.在堆中创建对象
int *pi = new int;
类名 *对象指针名 = new 类名(初始值);
delete 对象指针名;
类名 *对象数组名 = new 类名[元素个数];
delete []对象数组名;
2.this指针
在类的非静态成员函数中,都隐藏着一个this指针。
this指针保存了调用该成员函数的那个对象的地址!
即 谁调用,this就指向谁
作用:
1.用来区分成员变量与形参
2.用来在成员函数中表示调用该成员函数的对象
注:
一个空的类,占用一个字节的空间
3.静态成员 static
为了实现对象之间的数据共享,C++ 提出静态成员的概念
静态成员不属于某个对象,是所有同类对象所共享的
静态成员:
静态成员变量
初始化:必须在类外初始化
类型 类名::静态成员变量名=初始值;
静态成员函数
静态成员函数专门用于处理静态成员变量
调用形式:
类名::静态成员函数名();
静态成员函数与普通的成员函数有什么不同?
1.不属于对象、属于类型
2.专门处理静态成员变量,不能访问普通的成员变量
3.调用方式(普通的成员函数需要用对象调用,静态函数用类名调用,也可以用对象调用)
4.静态成员函数中没有this!
5.静态成员函数没有只读属性,普通成员函数可以有
如 void show()const;
4.友元 friend
友元 机制是对类的封装机制的一个补充。
它允许与它有友元关系的函数去直接访问该类的私有成员
1.友元关系 是单向的
A 是B 的朋友,B 不是A 的朋友。
2.友元关系 是不可传递的
A 是B 的朋友 ,B 是C 的朋友, A不是C 的朋友
3.友元关系不能被继承
友元函数声明:
普通的全局函数
friend 返回类型 函数名(参数列表);
类的成员函数
friend 返回类型 类名::函数名(参数列表);
友元类声明:
friend class 类名;
类的前置声明
class 类名;
5.类的 组/聚 合
6.初始化列表
构造函数的升级版本
构造函数(参数列表):要初始化的成员(初值),...{}