当前位置: 首页 > news >正文

C++编程学习(第38天)

对象数组

数组不仅可以由简单变量组成,也可以由类对象组成,对象数组的每一个元素都是同类的对象。

编译系统只为每个对象元素的构造函数传递一个实参,所以在定义数组时提供的实参个数不能超过数组元素个数。如果构造函数有多个参数,在定义对象数组时应当在花括号中分别写出构造函数名并在括号内指定实参。

在建立对象数组时,分别调用构造函数,对每个元素初始化,每一个元素的实参分别用括号括起来,对应构造函数的一组形参,不会混淆。

例1:输出三个立方体的体积,用对象数组方法。

#include <iostream>
using namespace std;class Box
{
public:Box(int h=10,int w=12,int len=15):height(h),width(w),length(len){}int volume();
private:int height, width, length;
};int Box::volume()
{return(height * width * length);
}int main()
{Box a[3] = {Box(10,10,10),Box(20,20,20),Box(30,30,30)};cout << "v1 = " << a[0].volume() << endl;cout << "v2 = " << a[1].volume() << endl;cout << "v3 = " << a[2].volume() << endl;return 0;
}

对象指针

指向对象的指针

在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其数据成员,对象空间的起始地址就是对象的指针。可以定义一个指针变量,用来存放对象的地址,这就是指向对象的指针变量。

定义指向类对象的指针变量的一般形式为

类名 * 对象指针名;

可以通过对象指针访问对象和对象的公用成员

指向对象成员的指针

对象有地址,存放对象的起始地址的指针变量就是指向对象的指针变量;对象中的成员也有地址,存放对象成员地址的指针变量就是指向对象成员的指针变量。

1、指向对象数据成员的指针

定义指向对象数据成员的指针变量的方法和定义指向普通变量的指针变量方法相同。

定义指向对象数据成员的指针变量的一般形式为

数据类型名 * 指针变量名;

2、指向对象成员函数的指针

定义指向对象成员函数的指针变量的方法和定义指向普通函数的指针变量方法有所不同。

指向普通函数的指针变量的定义方法:类型名(*指针变量名)(参数列表)

定义指向公用成员函数的指针变量的一般形式为

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

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

例2:用不同的方法输出时间记录的时分秒,使用对象指针的方法。

#include <iostream>
using namespace std;class Time
{
public:Time(int, int, int);int hour, minute, sec;void get_time();
};
Time::Time(int h, int m, int s)
{hour = h;minute = m;sec = s;
}
void Time::get_time()
{cout << hour << ":" << minute << ":" << sec << endl;
}int main()
{Time t1(10, 20, 30);		//定义Time类对象t1并初始化int* p1 = &t1.hour;			//定义指向整型数据的指针变量p1,并使p1指向t1.hourcout << *p1 << endl;		//输出p1所指的数据成员t1.hourt1.get_time();				//调用对象t1的成员函数gt_timeTime* p2 = &t1;				//定义指向Time类对象的指针变量p2,并使p2指向t1p2->get_time();				//调用p2所指向对象(即t1)的get_time函数void(Time:: * p3)();		//定义指向Time类公用成员函数的指针变量p3p3 = &Time::get_time;		//使p3指向Time类公用成员函数get_time(t1.*p3)();					//调用对象t1中p3所指的成员函数,即t1.get_time()
}
指向当前对象的this指针

在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this。它是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。

this指针是隐式使用的,它是作为参数被传递给成员函数的。

所谓调用对象a的成员函数f,实际上是在调用成员函数f时使this指针指向对象a,从而访问对象a的成员。

http://www.dtcms.com/a/499911.html

相关文章:

  • 许昌做网站公司哪家专业找装修公司的网站
  • 问题“A fatal error occurred: Failed to connect to ESP32”分析解决
  • 基数排序基础透彻理解
  • 批处理重命名遇到的几个问题
  • 网站风格的设计微信小程序开发费用一览表
  • 门户网站开发框架应用网站
  • 做网站如何调字体格式衡阳做网站ss0734
  • 云南省城乡和住房建设厅网站大连seo建站公司
  • 微服务降本增效措施
  • [优选算法专题四.前缀和——NO.27 寻找数组的中心下标]
  • 多模块exe文件和ini文件文件之间是如何耦合的
  • 【MySQL】数据库的相关操作
  • 房地产网站源码Wordpress页面无侧边栏
  • 营销神器官方网站竞价单页模板
  • Mysql初阶第十一讲:Mysql视图特性与用户管理
  • 临沂h5建站网站建设企业网银e路通
  • gpiozero 树莓派(Raspberry Pi)官方推荐的 Python GPIO 控制库
  • 如何快速搭建个人网站wordpress 发通知
  • 深圳网站建设公司收费手机排行榜软件
  • ModuleNotFoundError: No module named ‘google.protobuf‘
  • 江苏企业网站排名优化wordpress文章序号排列
  • 网站空间使用方法wordpress php版本号
  • 网站建设需要学什么证苏州保洁公司诗雨
  • 网站用户推广哈尔滨快速建站服务
  • WinForm自定义组件双击事件
  • 智慧养老平台|基于SprinBoot+vue的智慧养老平台系统(源码+数据库+文档)
  • 佛山北京网站建设公司的wordpress主机名
  • 网站建设app小程序传媒公司网站
  • 【LUT技术专题】空间感知3D查找表-SA-3DLUT
  • 编译原理机测客观题(7)优化和代码生成练习题