الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

شرح برنامج overloaded

بدأه لولو كاتي في 1 أبريل 2012 · 1 رد · 409 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

ممكن تشرحون لي هذا البرنامج لاني حاولت ان افهمه ولكن لم استطع

وخصوصا لماذا وضعنا const

class Distance //English Distance class
{
private:
int feet;
float inches;
public: //constructor (no args)
Distance() : feet(0), inches(0.0)
{ } //constructor (two args)
Distance(int ft, float in) : feet(ft), inches(in)
{ }
void getdist() //get length from user
{
cout << “\nEnter feet: “; cin >> feet;
cout << “Enter inches: “; cin >> inches;
}
void showdist() const //display distance
{ cout << feet << “\’-” << inches << ‘\”’; }
Distance operator + ( Distance ) const; //add 2 distances
};
//--------------------------------------------------------------
//add this distance to d2
Distance Distance::operator + (Distance d2) const //return sum
{
int f = feet + d2.feet; //add the feet
float i = inches + d2.inches; //add the inches
if(i >= 12.0) //if total exceeds 12.0,
{ //then decrease inches
i -= 12.0; //by 12.0 and
f++; //increase feet by 1
} //return a temporary Distance
return Distance(f,i); //initialized to sum
}
////////////////////////////////////////////////////////////////
int main()
{
Distance dist1, dist3, dist4; //define distances
dist1.getdist(); //get dist1 from user
Distance dist2(11, 6.25); //define, initialize dist2
dist3 = dist1 + dist2; //single ‘+’ operator
dist4 = dist1 + dist2 + dist3; //multiple ‘+’ operators
//display all lengths
cout << “dist1 = “; dist1.showdist(); cout << endl;
cout << “dist2 = “; dist2.showdist(); cout << endl;
cout << “dist3 = “; dist3.showdist(); cout << endl;
cout << “dist4 = “; dist4.showdist(); cout << endl;
return 0;
}

تم تعديل هذه المشاركة بواسطة لولو كاتي في 1 أبريل 2012 في 22:16

#2
اقتباس
وخصوصا لماذا وضعنا const

أستخدام الــ const مع الدوال اﻻعضاء فى كود اﻻعلان للفئه معناة ان الدالة العضو لن تستطيع تعديل أى متغير او وسيط ممر لها وهذا مثال صغير واكثر وضوحا:

class aClass
{
private:
    int alpha;
public:
    void nonFunc()
    //دالة بدون const يمكنها تغيير alpha
    { alpha = 99; }
    //OK
    void conFunc() const
    { alpha = 99; }
   //هذة دالة بــ const لايمكهنا تغيير قيمة alpha
};

تقبل مرورى والله وبى التوفيق

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

مواضيع مشابهة