| |
|
开发:
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++ 构造函数与对象指针 |
一、对类对象进行初始化,不能在声明中进行,要使用构造函数。 构造函数:函数名与类名相同 也可以和其他函数一样在类外定义,没有返回值(但也不用void修饰) 构造函数不能被调用 构造函数是定义对象的时候调用的,只执行一次 构造函数有以下几种: 1、不含参:初值自己定义好
2、含参:初值由用户输入,可以进行对不同对象的初始化
上面这种构造函数也可以写成一下这种参数初始化表:
构造函数的重载: (1)一个类中只能有一个默认构造函数(程序中已设定了全部属性的初值),如果没有无参构造函数,并且用户没有定义构造函数,系统会自动提供一个默认构造函数,但是里面是空的,没有初值。 (2)重载不能在以下几种情况进行: 1、无参构造函数和全部参数指定初值的构造函数(若出现不输入实参的对象,二者作用重复) 2、全部是默认参数的构造函数和其他重载构造函数 比如:
这时候会发现example1调用哪个构造函数都可以,会出现歧义 析构函数: ~构造函数 用处:撤销对象占用的内存之前完成清理工作,使清理好的这部分内存可以被程序分配给新对象使用 先构造的后析构,后构造的先析构。 二、对象数组 顾名思义,是由对象组成的数组 例:
可以像普通数组那样赋值,但只能是构造函数有一个参数时。如果构造函数有多个参数,可以用以下方法定义:
三、对象指针 1、指向对象的指针:
注意:指针名指向的是对象的地址,而(*指针)指向的是对象本身。 因此想要用指针访问对象的公有成员,就需要如下步骤:
2、指向对象成员的指针 (1)指向数据成员的指针
?(2)指向成员函数的指针
?3、指向当前对象的this指针 this->数据成员 (*this)代指对象本身,上面这句话也可以变成? (*this).数据成员 四、共用数据的保护(const的使用) 1、常对象,该对象里所有数据成员的值都不能改变
?常对象可以有常成员函数和普通成员函数,但外界调用只能调用常成员函数,而不能调用普通函数。 常成员函数可以访问常对象中的数据成员,但不能改变他的值 2、常数据成员 注意:只能通过构造函数的参数初始化表对常数据成员进行初始化
3、常成员函数 常成员函数可以引用类中的数据成员,但不能修改他们的值(不论是不是常数据)
4、指向对象的常指针 当指针被const修饰时即变为常指针时,常指针始终指向一个对象,不能改变指向
5、指向常对象的指针变量
注意:(1)常变量的指针只能是指向常变量的指针,不能是一般的指针变量 (2)指向常变量的指针可以指向不被声明为const的变量,只不过此时不能用此指针改变变量的值,但是变量本身想怎么变就怎么变,即为在指针访问它的期间,它具有常变量的特征,不被引用时就是普通的变量 6、常引用 常用于函数形参 我们知道函数形参和实参不是一个东西,他们使用了两个不同的存储单元 那么只要使用指针或者引用(也叫别名),形参实参处于同一地址中,在函数中对形参作出改变就能传到实参那里去 如果不想让实参对象的值发生变化,就会用到常引用 上面讲的常指针的主要用处也是作为函数的形参,理由同上
|
|
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 22:43:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |