Chapter 8 怎样使用类和对象(下篇)

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

8.2 对象数组

1.对象数组的每一个元素都是同类的对象

2.在建立数组时,同样要调用构造函数,如果有50个元素,那么就要调用50次构造函数

3.编译系统只为每一个对象元素的构造函数传递一个是实参,所以在定义数组时提供的实参个数不能超过数组元素个数

4.提问:如果构造函数有多个参数,在定义对象数组时应当怎样实现初始化呢?

回答:在花括号中分别写出构造函数名并在括号内指定实参

例子:Student stu3={

Student(1001,12,12);

Student(1002,13,13);

Student(1003,14,14);

};

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

8.3 对象指针

1.对象空间的起始地址就是对象指针

2.作用:可以定义一个指针数组,用来存放对象的地址,这就是指向对象的指针变量

a:指向对象数据成员的指针

形式:数据名 *指针变量名

b:指向对象成员函数的指针

注意⚠️:定义指向对象成员函数的指针变量的方法和定义指向普通函数的指针变量方法不同

a:定义指普通函数的指针变量

形式:类型名 (*指针变量名)(参数列表)

cpp 复制代码
void (*p)();//p指向void型函数的指针变量

b:定义指向对象成员函数的指针变量

形式:数据类型名(类名::*指针变量名)(参数列表)

cpp 复制代码
void (Time:: *p)();//定义p是指向Time类中公用成员函数的指针变量

c:使指针变量指向一个公用成员函数的一般形式:指针变量名=&类名::成员函数名

3.指向当前对象的this指针:在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this

a:作用:它是指向本类对象的指针,他的值是当前被调用的成员函数所在的对象的起始地址

b:this指针在系统中是自动实现的

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

8.4 公用数据的保护

1.常对象的形式:类名 const 对象名(实参名) 也可以是const 类名 对象名(实参名)

2.常成员函数可以访问常对象中的数据成员,但仍然不允许修改常对象中数据成员的值

注意⚠️:常成员函数不能调用另一个非const成员函数

3.指向对象的常指针

a:将指针变量声明为const型,这样指针变量始终保持为初值,不能改变,即其指向不变,指向对象的常指针变量的值不能改变,即始终指向一个对象

b:形式:类名 * const 指针变量名

4.指向常对象的指针变量

a:形式:const 类型名 * 指针变量名

b:如果一个变量已被声明为常变量,只能用指向常变量的指针变量指向她它,而不能用一般的(指向非const型变量)指针变量去指向它

c:当希望在调用函数时对象的值不被修改,就应当把形参定义为指向常对象的指针变量,同时用对象的地址作实参(对象可以是const或非const)

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

9.5 对象的动态建立和释放

1.用new运算符动态建立对象,用delete运算符撤销对象

欢迎指正,共同学习!

相关推荐
橙子圆1231 分钟前
JUC之集合类不安全
java·开发语言
阿里嘎多学长10 分钟前
2026-09-29 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Bruce_Liuxiaowei11 分钟前
网页版 DeepSeek “harness desktop“ WebGL 上下文创建失败排查实录
开发语言·javascript·webgl
狗凯之家源码网22 分钟前
PHP 用户反馈系统源码深度评测与实战指南
开发语言·php·用户反馈系统
小溪学编程29 分钟前
从 C++ 的规范变迁看语言发展
jvm·c++·面试
谢亮_vipxieliang1 小时前
Stream API 不是银弹:常见坑与性能建议
java·开发语言
迅猛龙办公室1 小时前
实现第一个python程序(HelloWorld)
开发语言·python
phltxy1 小时前
C 语言动态内存管理:从申请空间到安全释放
c语言·开发语言·ui
可乐鸡翅yeah_1 小时前
M3U8 防盗链 URL‑Token 签名,新手开发实操避坑
开发语言·javascript·ios·音视频·safari
ShineWinsu1 小时前
对于Redis:string类型的解析
java·c++·redis·分布式·缓存·面试·string