對象成員:
一個對象中包含其他對象
如:
class Line{ public: Line(); PRivate: Coordinate m_coorA; Coordinate m_coorB;}當(dāng)實例化這樣一個對象時,會先實例化m_coorA,再實例化m_coorB,最后實例化Line
對象消亡時,會先銷毀Line,再m_coorB,最后m_coorA
如果坐標(biāo)類有一個默認(rèn)構(gòu)造函數(shù),那么在實例化線段對象的時候,不使用初始化列表。
如果坐標(biāo)類要求必須有參數(shù)傳入,那么在實例化線段類的時候,必須用初始化列表講相應(yīng)的值傳遞給坐標(biāo)類
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;/** * 對象成員 要求: 定義兩個類: 坐標(biāo)類:Coordinate 數(shù)據(jù)成員:橫坐標(biāo)m_iX,縱坐標(biāo)m_iY 成員函數(shù):構(gòu)造函數(shù),析構(gòu)函數(shù),數(shù)據(jù)封裝函數(shù) 線段類:Line 數(shù)據(jù)成員:點A m_coorA,點B m_coorB 成員函數(shù):構(gòu)造函數(shù),析構(gòu)函數(shù),數(shù)據(jù)封裝函數(shù),信息打印函數(shù) */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)
新聞熱點
疑難解答
圖片精選