深入了解C++对象数组的要点

开课吧小一2021-07-23 14:49

    如果能够做好C++基础知识的学习,那么不仅可以顺利成为C++开发工程师,同时还可以更好地完成C++开发工作。接下来小编带你了解下C++对象数组的要点:

深入了解C++对象数组的要点

    对象数组的定义与访问

    定义对象数组

    类名 数组名[元素个数];

    访问对象数组元素

    通过下标访问

    数组名[下标].成员名

    对象数组初始化

    数组中每一个元素对象被创建时,系统都会调用类构造函数初始化该对象。

    通过初始化列表赋值。

    例:

Pointa[2]={Point(1,2),Point(3,4)};

    如果没有为数组元素指定显式初始值,数组元素便使用默认值初始化(调用默认构造函数)。

    数组元素所属类的构造函数

    元素所属的类不声明构造函数,则采用默认构造函数。

    各元素对象的初值要求为相同的值时,可以声明具有默认形参值的构造函数。

    各元素对象的初值要求为不同的值时,需要声明带形参的构造函数。

    当数组中每一个对象被删除时,系统都要调用一次析构函数。

    对象数组应用举例

    //Point.h
    #ifndef_POINT_H
    #define_POINT_H
    classPoint{//类的定义
    public://外部接口
    Point();
    Point(intx,inty);
    ~Point();
    voidmove(intnewX,intnewY);
    intgetX()const{returnx;}
    intgetY()const{returny;}
    staticvoidshowCount();//静态函数成员
    private://私有数据成员
    intx,y;
    };
    #endif//_POINT_H
    //Point.cpp
    #include<iostream>
    #include"Point.h"
    usingnamespacestd;
    Point::Point():x(0),y(0){
    cout<<"DefaultConstructorcalled."<<endl;
    }
    Point::Point(intx,inty):x(x),y(y){
    cout<<"Constructorcalled."<<endl;
    }
    Point::~Point(){
    cout<<"Destructorcalled."<<endl;
    }
    voidPoint::move(intnewX,intnewY){
    cout<<"Movingthepointto("<<newX<<","<<newY<<")"<<endl;
    x=newX;
    y=newY;
    }
    //sample.cpp
    #include"Point.h"
    #include<iostream>
    usingnamespacestd;
    intmain(){
    cout<<"Enteringmain..."<<endl;
    Pointa[2];
    for(inti=0;i<2;i++)
    a[i].move(i+10,i+20);
    cout<<"Exitingmain..."<<endl;
    return0;
    }

运行结果:

Entering main...
Default Constructor called.
Default Constructor called.
Moving the point to (10,20)
Moving the point to (11,21)
Exiting main...
Destructor called.
Destructor called.

    以上就是开课吧广场小编为大家整理的“深入了解C++对象数据的要点”一文,更多相关信息尽在开课吧C/C++教程频道。

相关推荐

2021大厂高频面试题精选,0元免费领

福利来袭,C++经典项目实战免费领取!

职场进阶必备,数据分析职业能力特训营

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
算法刷题核心能力提升营