| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> C++ 特性 -封装 -> 正文阅读 |
|
[C++知识库]C++ 特性 -封装 |
1.1类和对象 封装属性和行为作为整体
1.2封装-权限: 公共权限: public:成员类内可以访问,类外也可以访问 保护权限: protected:成员类内可以访问,类外不可以访问,儿子可以访问父亲中的保护权限内容。 私有权限 : private:成员雷内可以访问,类外不可以访问,儿子不可以访问父亲中的私有权限内容。C++类内不声明,默认权限是私有
1.3利用public接口实现对私有权限内容得读写操作: 成员函数设置为私有的优点 1>可以自行控制读写权限; 2>对于写可以检测数据的有效性。
1.4对象的初始化与清理: 构造函数与析构函数 构造函数的作用:初始化; 1.没有返回值不用写void 2.函数名与类名相同 3.构造函数可以有函数,可以发生重载 4.创建对象时,构造函数会自动调用一次。 析构函数:主要作用于对象被销毁前系统自动调用,执行一些清理工作。 1.没有返回值,不写void 2.函数名和类名相同,名称前加上~ 3.析构函数不含参数,不可以发生重载 4.对象销毁前自动调用一次。
1.4.1构造函数的分类及其调用: 按参数:含参构造,无参构造。无参构造函数不要写括号,会被编译器认定为非类的函数。 拷贝构造函数和普通构造。 注意:匿名对象的特点,当前执行结束后就被系统释放 括号法构造 ? ?Person p1; 显示法构造: Person p1 Person p2=Person(10) Person p3=Person(p2); 注意:不要用拷贝函数初始化匿名对象。 隐式转化法 Person p1=10; Person p2=p1; 拷贝构造的调用时机: +? ?使用一个已经创建完毕的对象来初始化一个新对象 +? 值传递的方式给函数参数传值 +? 以值的方式返回局部变量 构造函数调用规则: 1.1 编译器的默认构造函数 1.默认构造函数(无参空函数体) 2.默认析构函数(无参,函数体为空) 3.默认拷贝构造函数(对属性进行值拷贝) 1.2 注意事项 1.如果创建了有参构造函数,编译器就不再提供默认无参构造函数。 2.如果创建了拷贝构造函数,编译器就不再提供任何默认构造函数。 1.4.2 深拷贝与浅拷贝: 浅拷贝:简单的赋值拷贝参数,编译器进行逐个字节拷贝的是浅拷贝。 浅拷贝带来的问题是堆区的内存被重复释放 解决办法,重新写一个拷贝构造函数。
如果属性有在堆区开辟的,一定要自己实现一个拷贝构造函数。避免程序崩溃。 深拷贝:在堆去申请空间,进行拷贝操作 1.5 初始化列表: 语法:构造函数()属性1(val1) 属性2(val2).......{} ? ? ? ? 类内定义Person(int a,int b,int c) : m_a(a),m_b(b),m_c(c){}?? ? 1.6类对象作为类成员 C++中类的成员可以是另一个类的对象,我们称该成员为类对象。 当其他的类的对象作为本类成员,先构造其他类的对象在构造本类成员。 析构是结论相反。
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 21:56:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |