您的位置:首页 > 编程语言 > C语言/C++

C++的封装

2015-12-11 00:05 183 查看
1、类中有三种不同权限标识符:public 公有, protected 保护 , private 私有 。还有破坏封装性的 friend 。

2、在public中,类会自己生成构造函数,复制构造函数,析构函数,如果有虚函数,还会形成虚函数列表。

3、在建立对象的时候,可以使用堆(叫动态存储空间)实例化,也可以用栈(象什么局域变量就是用栈的)来实例化。

4、在C++中,封装为了保证数据的安全性,使用private,和protected来保证在继承关系中数据的储存,但是使用友元函数(可以写在类的任意位置,但是我们习惯将他写到最前面或最后面),友元类,破坏了类的封装性,在公有(public)继承中,子类的的public会继承父类的public,子类的protected会继承父类的protected,以保证数据的安全,在protected继承中,父类的public和protected的函数和数据都会继承到子类的protected中。

5、在关于public中函数的定义,可以在写到函数定义之后,也可以在整个类完成封装之后写到累的外面如同子函数一样,但是要注意格式:类名::函数名(参数类型 参数名,... ):参数名(初始化),.... { },这就完成了类外定义,当然可以没有初始化列表(即::参数名(初始化),....)

6、还可以在protected 和private 的中设置常 数据成员(就是用const来修饰的数据成员),但只能被常成员函数所赋值,如果初始化,就要用初始化列表来进行初始化。

7、可以设置静态数据成员来记录对象的个数(及用static 来修饰的数据成员)可以在一开始进行直接赋值,也可以在类外赋值。

8、在执行拷贝构造函数的时候一般情况可以用浅拷贝来进行,但是在数据成员中存在指针(或者有用堆子来储存数据的情况)的时候后就不可以用浅拷贝来完成(在数据进行销毁的时候会出现一块内存被俩个对象销毁了俩遍,这会使系统崩溃,可能导致电脑报废),这就要用到深拷贝,新建一个指针,重新申请一段内存来进行数据的拷贝(及深拷贝),将在堆中储存的数据挨个存储在新建立的对象中。

9、建立对象的时候可以用 :类名 对象名,来建立对象,也可以用 new 来建立对象,但注意用new来建立的对象指针不会分配存储空间,这与在堆中建立的对象有本质区别。

10、在成员函数中会有隐含的 this 指针,他方便我区分对象内的数据成员和在函数中传入的形参名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: