| |
|
开发:
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、语法:类名 (){ }
2、两种分类方式:1、按参数分:有参构造和无参构造(默认构造); 2、按类型分:普通构造和拷贝构造
3、三种调用方法:(1)、括号法? ? ? ? ? ? ? ?注意:调用默认构造函数的时候不加(),不能写成Person? p1();会被编译器认为是函数的声明,不会认为在创建对象 (2)、显示法、注意:单独的Person (10);被认为是匿名对象 ?特点是:当前执行结束后,系统立即会收掉匿名对象 例: Person(p3); ?编译器会认为 Person (p3)==Person p3;是对象的声明。 (3)、隐式转换法?
4、拷贝构造函数调用时机(1)、使用一个已经创建完毕的对象来初始化一个新对象 (2)、值传递的方式给函数参数传值 (3)、以值方式返回局部对象 二、析构函数:对对象销毁前系统自动调用,做清理工作。1、语法:~类名 (){ }
编译器会强制要求实现对对象成员的初始化和清理,一般未写明时,编译器会自动生成自动调用,但内容为空,即空实现。 三、构造函数调用规则默认情况下编译器会给一个类配置三个函数:
三个函数的调用规则:
四、深拷贝与浅拷贝浅拷贝:简单的赋值拷贝操作,编译器提供的拷贝构造函数里提供的操作都是浅拷贝存在问题:如果有数据开辟在堆区,在析构函数调用时,同一块堆区的内存重复释放 解决办法:深拷贝,自己写一个拷贝构造函数 深拷贝:在堆区重新申请一块空间,做赋值操作。大概白话理解,就是在创建对象参数的时候有些指针类型的属性创建在堆区,在有对象进行拷贝操作的时候,如果调用的时编译器自带的拷贝构造函数,就会导致两个对象的属性指向同一块内存空间,在析构释放时,拷贝对象(P2)会先释放掉指向的那块内存空间,被拷贝对象(p1)在析构释放时会要求再释放一遍,这就导致了同一块内存空间重复释放的问题,解决办法就是自己写一个拷贝构造函数,在自己写的拷贝构造函数里,把指针类型的属性数据重新开辟一块空间(深拷贝)。
五、初始化列表对类中的属性进行初始化操作。主要在构造函数中。 语法:类名():属性1(值1),属性2(值2)........{? ? ? ? } 示例:
六、类对象作为类成员B类中有对象A作成员,A为对象成员。 会先构造对象成员A的对象,再构造自身B; 析构相反,会先析构自身B,再析构对象成员A。 七、静态成员静态成员就是在成员变量和成员函数前加上关键字stastic,称为静态成员。 分类:
例题:寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。 ——回文数:各位数字左右对称的整数。 ——11满足上述条件:112=121,113=1331. 分析:模10取余的方法,从最低位开始,依次取出该数的各位数字。按反序重新构成新的数,比较与原数是否相等,若相等,则原数为回文。
运行结果: |
|
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图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 10:08:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |