C++的封装

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 指针,他方便我区分对象内的数据成员和在函数中传入的形参名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值