一、示例對象數組:?
#include<iostream>
using namespace std;class Point{private:int x,y;public:Point(int px=0,int py=0){x=px;y=py;}void init(int px=0,int py=0){x=px;y=py;}void print(){cout<<"("<<x<<","<<y<<")"<<endl;}
};int main(){Point *pArray=new Point[5];if(!pArray){cout<<"allocation error!"<<endl;return -1;}int x,y,k;for(k=0;k<5;k++){cin>>x>>y;pArray[k].init(x,y);}cout<<"Array of Point:"<<endl;for(k=0;k<5;k++){pArray[k].print();}delete[]pArray;return 0;
}
說明:?
????????在執行“Point *pArray=new Point[5];”語句時,系統自動調用構造函數五次,按默
認值初始化動態聲明五個對象。?
二、示例類的組合:
#include<iostream>
#include<cmath>
using namespace std;class Point{private:int x;int y;public:Point(int px,int py){x=px;y=py;}void print(){cout<<"("<<x<<","<<y<<")"<<endl;}friend class Triangle;
}; class Triangle{private:Point p1,p2,p3;public:Triangle(Point xp1,Point xp2,Point xp3):p1(xp1),p2(xp2),p3(xp3){}double GetArea();void display();
};double Triangle::GetArea(){double x1=p1.x-p2.x;double y1=p1.y-p2.y;double x2=p1.x-p3.x;double y2=p1.y-p3.y;double x3=p2.x-p3.x;double y3=p2.y-p3.y;double L1=sqrt(x1*x1+y1*y1);double L2=sqrt(x2*x2+y2*y2);double L3=sqrt(x3*x3+y3*y3);double s=(L1+L2+L3)/2;return sqrt(s*(s-L1)*(s-L2)*(s-L3));
}void Triangle::display(){cout<<"the Point of Tiangle are:"<<endl;p1.print();p2.print();p3.print();
}int main(){Point p1(3,4),p2(4,5),p3(3,9);Triangle t(p1,p2,p3);t.display();cout<<"三角形面積:"<<t.GetArea()<<endl; return 0;
}
說明:?
????????Triangle是Point的組合類,里面包含三個Point對象。為了便于計算三角形邊長(兩點的距離),將Triangle聲明為Point的友元類,這樣就可以方便地訪問Point類中的私有成員x和y。計算三角形面積時用到了已知三邊邊長求面積的海倫公式。