السلام عليكم ورحمة الله وبركاته :
لدي سؤالين
السؤال الأول :
ما هي تعليمة التربيع في ال c++ أي التعليمة التي نوجد بها مربع عدد square
السؤال الثاني :
بدأنا من جديد بتعلم الكلاسيس أو الصفوف ونقوم ببرمجة مسألة تقول :
يعبر عن نقطة في الإحداثيات الديكارتية بمسقطيها على محوري السينات والعينات
Point(xcoordinate,ycoordinate)
بعير عن المستقيم بدلالة نقطتي بدايته ونهايته
Line(startpoint,endpoint)
وبطول length
المطلوب توصيف الصفوف الواردة في المسألة برمجيا
قمت بتوصيف الصفوف وبرمجتها كالتالي
#include<iostream.h>
#include<math.h>
class point{
public:
point(int x,int y){
xcoordinate=x;
ycoordinate=y;}
void print(){
cout<<"XCoordinate = "<<xcoordinate<<endl;
cout<<"YCoordinate = "<<ycoordinate<<endl;
}
int xcoordinate,ycoordinate;
};
//******************************//
class line{
private:
point startpoint,endpoint;
public:
line(point a,point B){
startpoint=a;
endpoint=b;}
void print(){
cout<<"Start Point"<<endl;
cout<<" XCoordinate= "<<startpoint.xcoordinate<<endl;
cout<<" Ycoordinate= "<<startpoint.ycoordinate<<endl;
cout<<"End Point "<<endl;
cout<<" XCoordinate= "<<endpoint.xcoordinate<<endl;
cout<<" Ycoordinate= "<<endpoint.ycoordinate<<endl;}
double getlength(double length){
length=sqrt(power(endpoint.xcoordinate-startpoint.xcoordinate)+power(endpoint.ycoordinate-startpoint.ycoordinate));
return length;
}
};
//***************************************//
void main()
{
int r;
int x,y,x1,x2,y1,y2;
point p,p2,p3;
cout<<"1 For point"<<endl;
cout<<"2 For line"<<endl;
cin>>r;
if(r==1)
{
cout<<"Enter Xcoordinate , Ycoordinate"<<endl;
cin>>x>>y;
p(x,y);
}
else
if(r==2)
{
cout<<"enter coordinates for the start point"<<endl;
cout<<"xcoordinate= "<<endl;
cin>>x1;
cout<<"ycoordinate="<<endl;
cin>>y1;
cout<<"enter coordinates for the end point"<<endl;
cout<<"xcoordinate= "<<endl;
cin>>x2;
cout<<"ycoordinate="<<endl;
cin>>y2;
p2(x1,y1);
p3(x2,y2);
line(p2,p3);
}
}
لكن عند محاولة الاستفادة من تعريف ال point لاستخدامها في أغراض أخرى من كلاسات أخرى وفي البرنامج أعطاني الكومبايلر هذه الرسالة
F:\Ak\clas.cpp(24) : error C2512: 'point' : no appropriate default constructor available
ماذا تعني ، هل لا يسمح باستخدام نمط البوينت كمنط تعريف ، وهو ما يسمى بال composition ؟؟
طبعا من دون استخدام الوراثة
وشكرا سلفا للجميع
