对象数组+对象指针+指向对象的指针

C++指针操作:对象数组和this指针 本文将深入探讨C++指针对象的交互,包括指向对象指针对象指针数组的使用,以及this指针的应用。通过程序示例详细解析如何在C++中动态管理对象内存、存储不同大小的对象以及如何通过this指针访问和返回对象本身。 阅读详情

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

class Student
{
public:
    Student(int score)//只有一个参数时
    :_score(score){}
    private:
    int _score;
};

int main()
{
    Student stu1[3] = { 60, 70, 90 };//三个实参分别传给数组的三个构造函数
    return 0;
}

2.当数据成员中含有默认参数时

Student(int = 100, int = 80, int = 90);//含有默认参数时
Student stu2[3] = { 60, 70, 80 };//这三个实参分别作为三个元素的第一个实参
    Student stu3 = { 20, 30, 40, 50 };//错误,实参个数不能超过对象元素个数

3.对象数组的使用方法

class Box
{
public:
    Box(int h, int w, int len)
        :height(h), width(w), length(len){}
    int volume();
private:
    int height;
    int width;
    int length;
};

int Box::volume()
{
    return (height * width *length);
}

int main()
{
    Box a[3] = {
        Box(10, 12, 15),
        Box(15, 18, 20),
        Box(16, 20, 26)
    };
    cout << "volume of a[0] is " << a[0].volume() << endl;
    cout << "volume of a[1] is " << a[1].volume() << endl;
    cout << "volume of a[2] is " << a[2].volume() << endl;
    system("pause\n");
    return 0;
}

输出结果为

4,对象指针
对象空间的起始地址就是对象的指针

class Time
{
public:
    int hour;
    int minute;
    int sec;

    void get_time();
};

int main()
{
    Time *pt;
    Time t1;
    pt = &t1;//pt就是指向Time类对象的指针变量
    (*pt).hour;//pt所指向对象中的hour成员
    pt->hour;
}

5,指向对象成员的指针
(1.)指向对象数据成员的指针

int *p;
p = &t1.hour;
cout << *p << endl;//输出t.hour的值

(2)指向对象成员函数的指针

void(Time::*p2)();//定义p2为指向Time类公用成员的指针变量
p2 = &Time::get_time;

6,有关对象指针的使用方法

class Time
{
public:
    Time(int h, int m, int s)
        :hour(h), minute(m), sec(s){}
    void get_time();
    int hour;
    int minute;
    int sec;
};

void Time::get_time()
{
    cout << hour << ":" << minute << ":" << sec << endl;
}

int main()
{
    Time t1(10, 13, 56);//定义Time类对象t1并初始化
    int *p1 = &t1.hour;//定义指向整型数据的指针变量p1,并使p1指向t1.hour  
    cout << *p1 << endl;//10
    t1.get_time();//调用对象t1的成员函数get_time 10:13:56
    Time *p2 = &t1;//定义指向Time类对象的指针变量p2,并使p2指向t1
    p2->get_time();//调用p2所指向对象的get_tiime函数  10:13:56
    void(Time::*p3)();//定义指向Time类公用函数的指针变量p3
    p3 = &Time::get_time;//使p3指向Time类公用成员函数get_time
    (t1.*p3)();//调用t1对象中p3所指的成员函数(即get_time)  10:13:56
    system("pause\n");
    return 0;
}
深入理解C++中的this指针对象指针的用法 本文深入探讨了C++编程中的this指针以及对象指针的用法。通过实例代码展示了this指针在类成员函数中的应用,特别是如何通过this指针返回对象地址或在操作符重载中使用。同时,本文还介绍了如何创建对象数组以及通过指针访问对象数组的成员,包括指向基类和派生类对象指针的使用限制和特点。 阅读详情

相关推荐

C++指向类成员(数据、函数)的指针

指向【类】的成员的指针包含两种: ★指向【类】的数据成员的指针指向【类】的成员函数的指针 注意:指向的是【类的成员】,和类发生关系 ★★★指向非静态公有数据成员的指针,在定义时必须和类相关联,在使用时必须和对象相关联 1、指向类的数据成员的指针1.1 定义+初始化的格式: 数据类型 类型:: *指针名 = &类型:: 非静态公有数据

漫步云端 4379

C++基础学习(5)——对象数组对象指针

文章目录五、对象数组对象指针1. 对象数组的定义和使用2. 指向对象指针3. 类成员指针数据成员指针成员函数指针使用类成员指针4. this指针 五、对象数组对象指针 1. 对象数组的定义和使用 将具有相同类类型的对象有序的集合在一起构成了对象数组,以一维对象数组为例,定义形式为: Point points[100]; //类名 对象数组名[常量表达式]; 说明: 在建立对象数组的时候需要调用构造函数,有多少个对象就要调用多少次构造函数 如果对象数组所属类有带参数的构造函数,可用初

qq_41985514的博客 1232

指向数组的引用;指向数组指针指向类成员的指针指向数组成员的指针;二维字符串数组指针

1、指向数组的引用 int num[10]; int (&rNum)[10] = num; cout 2、指向数组指针 int num[10]; int (*pNum)[10] = &num; cout 注:int[] 和 int*不是同一种类型 3、指向类成员的指针 指向类成员的指针并非一般意义上的指针,它的值并非是一个真实的地址,而像是一个类成员在类中的偏

学而不思则罔 1028

第八讲:对象数组指针

<br />第八讲:对象数组指针<br />本讲基本要求<br />    * 掌握:对象数组对象指针的定义及引用。<br />    * 理解:this指针的使用;对象数组的定义、使用方法;指向对象成员的指针。<br />    * 了解:构造函数有多个参数对象数组和构造函数有单个参数对象数组的实参的传递方式。<br />重点、难点<br />    * 对象数组对象指针的定义及引用。<br />一、对象数组<br />   数组不仅可以由简单变量组成(例如整型数组的每一个元素都是整型变量),也可以

FG2006的专栏 1696

c++对象数组和类对象指针使用

c++对象数组使用

路过的熊的博客 2790

php对象指针,C++_详解C++中的对象指针对象数组,C++对象指针 指向对象指针 - phpStudy...

详解C++中的对象指针对象数组C++对象指针指向对象指针在建立对象时,编译系统会为每一个对象分配一定的存储空间,以存放其成员。对象空间的起始地址就是对象指针。可以定义一个指针变量,用来存放对象指针。如果有一个类:class Time{public :int hour;int minute;int sec;void get_time( );};void Time::get_time( ){c...

weixin_30851261的博客 186

C++语言中通过对象指针来访问对象数组,这时对象指针指向对象数组的首地址

int main(){Box a[3]={Box(),Box(15,18,20),Box(16,20,26)};Box *p    =    a;for(int i=0;    i&lt;3;    i++ ,p++){            cout&lt;&lt;"volum     of    a["&lt;&lt;i&lt;&lt;"]    is"&lt;&lt;p    -    &a

weixin_42133768的博客 5809

bool指针 如何赋值_C++ 对象数组对象指针

作者:鲸90830链接:https://www.cnblogs.com/whale90830/p/10535484.html对象数组对象指针1、对象数组所谓对象数组是指每一数组元素都是对象数组, 也就是说,若一个类有若干个对象,则把这一系列的对象用一个数组来存放。对象数组的元素是对象, 不仅具有数据成员,而且还有函数成员定义一个一维数组的格式如下:类名 数组名[下标表达式];exam...

weixin_39585886的博客 1022

C++ 对象数组

对象数组是指数组元素为对象数组。该数组中若干个元素必须是同一个类的若干个对象对象数组的定义、赋值和引用与普通数组一样,只是数组的元素与普通数组不同,它是同类的若干个对象。  1. 对象数组的定义  对象数组定义格式如下:   []...  其中,指出该数组元素是属于该类的对象,方括号内的给出某一维的元素个数。一维对象数组只有一个方括号,二维对象数组要有两个方括号,等等,例如:   DATE d

419

对象数组对象指针

今天老弟问了我一道题,是关于对象指针对象数组的题目,当时竟然有点懵逼,一下子竟不知道这是些什么意思,然后百度查了查资料,现总结如下: 对象数组 顾名思义,对象数组数组类似,我们把型于Student s[]={Student("peter",18),Student("Suum",19)};叫做对象数组,切结后面不要忘了 ; 看个例子: class Date { public: Date(int...

qq_39412582的博客 1106

C++对象数组&对象指针&对象指针数组

函数返回类型名 (类名∷*函数指针变量名)(参数表列);

pl0020的博客 761

C++对象指针数组

1.指向数组指针 #include<iostream> using namespace std; class M{ public: M(){ a=b=0; } M(int i,int j){ a=i;b=j; } void print(){ cout<<a<<","<<b<<"\t"; } private: int a,b; }; int main(){ M m[2][4]; int x=10

lyp 2150

c++对象指针赋值表达式必须是可修改的左值_C++ 对象数组对象指针

作者:鲸90830链接:https://www.cnblogs.com/whale90830/p/10535484.html对象数组对象指针1、对象数组所谓对象数组是指每一数组元素都是对象数组, 也就是说,若一个类有若干个对象,则把这一系列的对象用一个数组来存放。对象数组的元素是对象, 不仅具有数据成员,而且还有函数成员定义一个一维数组的格式如下:类名 数组名[下标表达式];4];...

weixin_39627361的博客 241

html get 数组_C++ 对象数组对象指针

(给CPP开发者加星标,提升C/C++技能)来源:鲸90830www.cnblogs.com/whale90830/p/10535484.html对象数组对象指针1、对象数组所谓对象数组是指每一数组元素都是对象数组, 也就是说,若一个类有若干个对象,则把这一系列的对象用一个数组来存放。对象数组的元素是对象, 不仅具有数据成员,而且还有函数成员定义一个一维数组的格式如下:类名 数组名[...

weixin_39664746的博客 142

[C/C++]对象指针

[C/C++]对象指针

weixin_60479183的博客 1065

对象数组指针小结

对象数组的每一个元素都是同类的对象 如果构造函数只有一个参数,在定义数组时可以直接在等号后面的花括号内提供实参 Student stud[3]={60,70,80}; 在定义数组时提供的实参个数不能超过数组元素 如果构造函数有多个参数,应当在花括号中分别写出构造函数名并在括号内指定实参 例: Student Stud[3] { Student(1001,18,87); Student...

小道名宇 372

对象指针

声明对象指针的一般用法为: 类名* 对象指针名 1.用对象指针访问单个对象成员 首先要把它指向一个已经创建的对象,然后才能访问该对象的公有成员。需要用‘“->”操作符 2.用对象指针访问对象数组 ...

weixin_46609774的博客 168

C++---对象数组对象指针

———————————————————————————————————————————————— 每天的生活从一杯绿茶开始,2月就这么过去了,时间总是这么快~ ———————————————————————————————————————————————— 1.对象数组 在实际中,有许多的实体的属性是共同的额,只有属性的具体内容不一样。这个时候我们就需要定义对象数组

谦190的博客 4693
上一篇: C++中的构造函数+拷贝构造函数+析构函数
下一篇: Linux下的Access、Modify、Change , touch的使用以及权限问题
ChaseRaod
博客等级 码龄10年 102粉丝 171原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值