首页 > 编程 > C++ > 正文

C++对象成员

2019-11-08 18:32:59
字体:
来源:转载
供稿:网友

对象成员:

一个对象中包含其他对象

如:

class Line{    public:      Line();    PRivate:      Coordinate m_coorA;      Coordinate m_coorB;}

当实例化这样一个对象时,会先实例化m_coorA,再实例化m_coorB,最后实例化Line

对象消亡时,会先销毁Line,再m_coorB,最后m_coorA

 

如果坐标类有一个默认构造函数,那么在实例化线段对象的时候,不使用初始化列表。

如果坐标类要求必须有参数传入,那么在实例化线段类的时候,必须用初始化列表讲相应的值传递给坐标类

Coordinate.h

class Coornidate{public:    Coornidate(int x,int y);    ~Coornidate();    void setX(int x);    int getX();    void setY(int y);    int getY();private:    int m_iX;    int m_iY;};

Coornidate.cpp

#include<iostream>#include"coordinate.h"using namespace std; Coornidate::Coornidate(int x,int y) {     m_iX=x;     m_iY=y;     cout<<"Coornidate() "<<"("<<m_iX<<","<<m_iY<<")"<<endl; } Coornidate::~Coornidate() {     cout<<"~Coornidate() "<<"("<<m_iX<<","<<m_iY<<")"<<endl; }void Coornidate::setX(int x){    m_iX=x;}int Coornidate::getX(){        return m_iX;}void Coornidate::setY(int y){    m_iY=y;}int Coornidate::getY(){    return m_iY;}

Line.h

#include"Coordinate.h"class Line{public:    Line(int x1,int y1,int x2,int y2);    ~Line();    void setA(int x,int y);    void setB(int x,int y);    void printInfo();private:    Coornidate m_coorA;    Coornidate m_coorB;};

Line.cpp

#include<iostream>#include"Line.h"using namespace std;Line::Line(int x1,int y1,int x2,int y2):m_coorA(x1,y1),m_coorB(x2,y2){    cout<<"Line()"<<endl;}Line::~Line(){    cout<<"~Line()"<<endl;}void Line::setA(int x,int y){    m_coorA.setX(x);    m_coorA.setY(y);}void Line::setB(int x,int y){    m_coorB.setX(x);    m_coorB.setY(y);}void Line::printInfo(){    cout<<"("<<m_coorA.getX()<<","<<m_coorA.getY()<<")"<<endl;    cout<<"("<<m_coorB.getX()<<","<<m_coorB.getY()<<")"<<endl;}demo.cpp

#include<iostream>#include"Line.cpp"using namespace std;/** * 对象成员 要求:    定义两个类:        坐标类:Coordinate        数据成员:横坐标m_iX,纵坐标m_iY        成员函数:构造函数,析构函数,数据封装函数        线段类:Line        数据成员:点A m_coorA,点B m_coorB        成员函数:构造函数,析构函数,数据封装函数,信息打印函数 */int main(){    Line *p=new Line(1,2,3,4);    p->printInfo();    delete p;    p=NULL;    return 0;}
Coornidate() (1,2)Coornidate() (3,4)Line()(1,2)(3,4)~Line()~Coornidate() (3,4)~Coornidate() (1,2)


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选