C++的对象数组、对象指针是什么?【案例解析】

2023-05-16

文章目录

    • 一、对象数组(盛放对象的数组)
    • 二、对象指针(指向对象的指针)

一、对象数组(盛放对象的数组)

#include <iostream>
using namespace std;

//声明一个类为Box 
class Box
{
public:
	//声明带有默认参数的构造函数,该构造函数给私有成员赋值 
	Box(int h=10, int w=12, int len=15): height(h),	width(w), length(len){  }
	int Volume();  //声明一个计算体积的函数
private:
	int height;
	int width;
	int length; 
};

//对共有成员函数进行定义 
int Box::Volume()
{
	return(height * width * length);  //返回计算的体积 
}

int main()
{
	//定义对象数组(装有3个对象的数组) 
	Box aa[3]={
		Box(1, 1, 1),  //对三个对象分别定义,并初始化构造函数(传入参数)
		Box(2, 2, 2),
		Box(3, 3, 3) 
	};
	cout << "对象盒子1的体积为:"  << aa[0].Volume() << endl;  //调用对象数组中对象1的Volume函数
	cout << "对象盒子2的体积为:"  << aa[1].Volume() << endl;  //调用对象数组中对象2Volume函数
	cout << "对象盒子3的体积为:"  << aa[2].Volume() << endl;  //调用对象数组中对象3的Volume函数	
} 

1-1

二、对象指针(指向对象的指针)

#include <iostream>
using namespace std;

//定义类Time 
class Time
{
public:
	Time(int, int, int);  //声明构造函数
	int hour;  //声明3个共有变量 
	int minute;
	int sec; 
	void show_time();  //声明共有成员函数 
};

//定义类Time的构造函数
Time::Time(int h, int m, int s)
{
	hour= h;  //用传入的参数来对共有成员数据进行初始化 
	minute= m;
	sec= s;
} 

//定义共有成员函数
void Time::show_time()
{
	cout << hour << ":"  << minute << ":" << sec << endl;
}

int main()
{
	Time t1(12, 23, 34);  //由Time类实例化对象t1
	int *p1= &t1.hour;  //定义指向整型数据的指针p1,指向t1对象的共有成员数据hour
	cout << "指针p1指向地址中存有:" << *p1 << endl;  //输出p1指向地址中存放的数据 
	t1.show_time();  //调用对象t1的共有成员函数
	
	//对象指针 
	Time *p2= &t1;  //定义对象指针p2,指向对象t1的首地址 
	p2->show_time();  //调用指针p2指向对象地址的成员函数
	
	//对象函数指针:指向对象函数的指针 
	void(Time::*p3)();  //定义指向Time类共有成员函数的指针变量p3
	p3= &Time::show_time;  //使p3指向Time类共有成员函数show_time,不能加括号,否则就是调用了  
	(t1.*p3)();  //调用对象t1中p3所指的成员函数,即t1.show_time()
	
	return 0; 
}

2-2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++的对象数组、对象指针是什么?【案例解析】 的相关文章

  • 从C语言到C++的进阶之C到C++的转变(篇一)

    文章目录 一 C语言到C 43 43 语言1 C语言2 C 43 43 语言3 C与C 43 43 的联系 二 C到C 43 43 的明显转变1 C 43 43 的关键字系列2 函数必列参数3 指针类型相同才能赋值4 对struct等封装类
  • 从C语言到C++的进阶之C++的非类新特性(篇二)

    文章目录 1 输出输入使用 cout lt lt 和 cin gt gt 2 访问外部变量3 从指针到引用4 引用与指针的比较5 返回引用类型的函数 1 输出输入使用 cout lt lt 和 cin gt gt span class to
  • 从C语言到C++的进阶之C++的非类新特性(篇三)

    文章目录 1 从宏到内联函数2 函数参数的缺省值3 C 43 43 的常量与引用4 函数重载5 new运算和delete运算 1 从宏到内联函数 xff08 1 xff09 写一个返回最大值的宏定义 xff08 C语言 xff09 span
  • 从C语言到C++的进阶之面向对象、using与命名空间(篇四)

    文章目录 一 面向过程到面向对象二 namespace的使用三 using的用法 一 面向过程到面向对象 1 面向过程编程思想 C语言是典型的面向过程编程语言 xff0c 面向过程是一种以过程为中心的编程思想 xff0c 通过分析出解决问题
  • Angular执行测试报错: 'router-outlet' is not a known element

    本机环境 xff1a ng version Angular CLI 7 1 1 Node 10 11 0 OS darwin x64 Angular 7 1 1 animations cli common compiler compiler
  • 从C语言到C++的进阶之一些C基础上的增强用法(篇五)

    文章目录 1 全局变量的检测增强2 新增Bool类型3 三目运算的增强4 指针与常量的引用 xff08 别名 xff09 5 内联函数的限制6 函数的占位参数7 extern 34 C 34 的用法 1 全局变量的检测增强 C 43 43
  • C语言经典排序算法之快速排序(详解)

    文章目录 一 何为算法二 排序算法三 快速排序算法 一 何为算法 1 算法 xff08 Algorithm xff09 xff0c 是程序设计的灵魂 xff0c 它是利用系统的方法描述解决问题策略的机制 2 正确算法应满足的性质 xff1a
  • C语言经典查找算法之二分查找(详解)

    文章目录 一 查找算法二 二分查找算法 一 查找算法 查找是在大量的信息中寻找一个特定的信息元素 xff0c 在计算机应用中 xff0c 查找是常用的基本运算 xff0c 例如编译程序中符号表的查找 二 二分查找算法 1 算法思想 该查找算
  • C语言经典递推算法之杨辉三角展开(详解)

    文章目录 一 递推算法二 杨辉三角展开 一 递推算法 这是一种比较简单的算法 xff0c 即通过已知条件 xff0c 利用特定关系得到中间结论 xff0c 然后得到最后结果的算法 递推算法可以分为顺推和逆推两种 二 杨辉三角展开 1 杨辉三
  • C语言经典迭代算法之求解函数定积分(详解)

    文章目录 一 迭代算法二 梯形法求解定积分 一 迭代算法 1 辗转迭代 迭代法也称辗转法 xff0c 它是一种不断用旧的变量值递推得到新值的过程 迭代法是用计算机解决问题的一种基本方法 xff0c 它利用计算机运算速度快 适合做重复性操作的
  • C语言经典递归算法之和式分解

    文章目录 一 递归算法二 和式分解 一 递归算法 1 递归 递归就是自己调用自己 xff0c 它是设计和描述算法的一种有力工具 xff0c 常常用来解决比较复杂的问题 递归是一种分而治之 xff0c 将复杂问题转化难为简单的问题的求解方法
  • C语言经典枚举算法之谁在说谎(详解)

    文章目录 一 枚举算法二 谁在说谎问题 一 枚举算法 1 枚举 枚举算法是我们在日常中使用到的最多的一个算法 xff0c 它的核心思想就是 枚举所有的可能 枚举法的本质就是从所有候选答案中去搜索正确的解 2 使用枚举算法需要满足两个条件 1
  • C语言经典贪心算法之加油站问题(详解)

    文章目录 一 贪心算法二 加油站问题 一 贪心算法 贪心算法暗示一种不追求最优解 xff0c 只希望找到较为满意解的方法 贪心算法省去了为找最优解要穷尽所有可能而必须耗费大量时间 xff0c 因此它一般可以快速得到较为满意的答案 贪心算法常
  • C语言经典回溯算法之解决数的组合问题(详解)

    文章目录 一 回溯算法二 数的组合问题 一 回溯算法 1 回溯法 也叫试探法 xff0c 实际上是一个类似枚举的搜索尝试过程 xff0c 主要是在搜索尝试过程中寻找问题的解 xff0c 当发现已不满足求解条件时 xff0c 就 回溯 返回
  • C语言经典矩阵算法之打印魔方阵(详解)

    文章目录 一 矩阵算法二 打印魔方阵 一 矩阵算法 1 矩阵 矩阵 xff0c 是线性代数中的基本概念之一 一个m n的矩阵就是m n个数排成m行n列的一个数阵 由于它把许多数据紧凑的集中到了一起 xff0c 所以有时候可以简便地表示一些复
  • Angular报错问题:Can't bind to 'formGroup' since it isn't a known property of 'form'

    Angular报错问题 xff1a Can t bind to formGroup since it isn t a known property of form 报错提示 xff1a Uncaught Error span class t
  • 单片机串口通信与同步异步通信

    文章目录 一 串口通信二 异步通信三 同步通信四 串行通信的传输方向 一 串口通信 1 随着多微机系统的广泛应用和计算机网络技术的普及 xff0c 计算机的通信功能愈来愈显得重要 计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换
  • C++面向对象编程之类的使用(从struct到class的进阶)

    文章目录 一 结构体的使用二 由结构体到类三 C 43 43 类的定义与使用1 引入类 xff08 class xff09 2 类的基本用法3 类的访问权限4 类的成员函数与接口定义 一 结构体的使用 1 C语言中struct的使用 spa
  • C++面向对象编程之类的使用(基础案例学习)

    文章目录 一 显示时间案例二 找出元素的最大值三 长方柱体积 一 显示时间案例 1 问题 输入3个数字 xff0c 将这三个数字按照时间的格式显示出来 2 共有划成员实现显示 span class token macro property
  • 蓝桥杯51单片机花样流水灯与独立按键实例分析【单片机开发初学者通俗易懂】

    文章目录 一 流水灯控制1 点亮流水灯2 循环显示流水灯 二 按键控制流水灯1 独立按键2 按键消抖3 按键控制流水灯 基础版 4 按键控制流水灯 实时版 一 流水灯控制 1 点亮流水灯 首先看一段点亮流水灯的代码 xff1a span c

随机推荐