C++中对C的扩展学习新增内容———面向对象(封装) 面向对象(封装)

1、对封装的理解:

1、封装就是把变量和函数放在一起统一表示某一个食物。 class

2、给类内部的成员增加访问控制权限。

3、封装的语法就是class定义一个类。

2、给对象成员增加访问控制权限publicprivate

1、类的内部没有权限之分,类内的成员函数可以访问私有成员变量,类的外部才有权限。

2、如果只是提供类内部的函数使用的变量和函数,建议定义为private私有属性。

3、如果我们写的成员函数需要外部调用,我们可以将其定义为共有属性public

 C++中对C的扩展学习新增内容———面向对象(封装)
面向对象(封装)

3structclass的区别:

1struct默认访问权限是public

2class默认的访问权限是 private

3、两者都可以定义一个类,只是访问权限不同而已。

 C++中对C的扩展学习新增内容———面向对象(封装)
面向对象(封装)

4、拷贝构造函数和析构函数:

构造函数:

语法:类名+(无参数或有参数){实现初始化}

拷贝构造语法:类名+const 类名& {实现拷贝构造}

任何对象都必须初始化,构造函数就是负责初始化。构造函数分为普通构造函数,拷贝构造函数,拷贝构造函数是为了防止发生深拷贝和浅拷贝的问题。

语法:~类名(){释放动态内存}

析构函数:

对象内部可能会有一些对象外的资源,析构函数对对象外部资源进行清理。

总结:只要类的内部有指针指向动态内存我们就要提供析构函数和拷贝构造函数。