C++中对C的扩展学习新增内容———面向对象(封装)
2024-09-01 18:08:25
面向对象(封装)
1、对封装的理解:
1、封装就是把变量和函数放在一起统一表示某一个食物。 class
2、给类内部的成员增加访问控制权限。
3、封装的语法就是class定义一个类。
2、给对象成员增加访问控制权限public和private:
1、类的内部没有权限之分,类内的成员函数可以访问私有成员变量,类的外部才有权限。
2、如果只是提供类内部的函数使用的变量和函数,建议定义为private私有属性。
3、如果我们写的成员函数需要外部调用,我们可以将其定义为共有属性public。
3、struct与class的区别:
1、struct默认访问权限是public。
2、class默认的访问权限是 private。
3、两者都可以定义一个类,只是访问权限不同而已。
4、拷贝构造函数和析构函数:
构造函数:
语法:类名+(无参数或有参数){实现初始化}
拷贝构造语法:类名+(const 类名& ){实现拷贝构造}
任何对象都必须初始化,构造函数就是负责初始化。构造函数分为普通构造函数,拷贝构造函数,拷贝构造函数是为了防止发生深拷贝和浅拷贝的问题。
语法:~类名(){释放动态内存}
析构函数:
对象内部可能会有一些对象外的资源,析构函数对对象外部资源进行清理。
总结:只要类的内部有指针指向动态内存我们就要提供析构函数和拷贝构造函数。
最新文章
- 1.uniq去重命令讲解
- 简单理解call_user_func和call_user_func_array两个函数
- Linux中修改环境变量导致大量命令不可用的解决办法
- java比较两个字符串是否相等
- 按Right-BICEP要求的任务二的测试
- 《MFC游戏开发》笔记十 游戏中的碰撞检测进阶:地图类型&;障碍物判定
- 《CSS3秘笈》备忘录
- ISNULL
- 限制oracle用户创建、删除、修改用户对象
- 【温故而知新-万花筒】C# 异步编程 逆变 协变 委托 事件 事件参数 迭代 线程、多线程、线程池、后台线程
- (未解决)在JSTL中,session 和 sessionScope 有什么区别 ??
- Codeforces #377 Div2
- JS面向对象一
- StringBuffer类的构造方法
- Linux查看线程
- 学习Shell(一)
- IE浏览器解决无法识别js中getElementsByClassName问题
- Repeater控件,判断最少选择一行记录
- 彻底理解Java的feature模式
- excel数据批量导入