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

overload operator =+

مغلق
بدأه smsm_9002 في 5 يناير 2007 · 3 رد · 857 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي مشكلة في overload =+ operator

عند إنشاء كائن من class Date

Date d2(3,5, 2004

عند عمل عمليةoverload

d2 += 2

من المفترض أن تكون النتيجة (5,5,2004)ولكن يظهر لي(5,6,2004)بمعنى انه عمل زيادة للشهر ايضا فماالحل؟؟

هذا هو الكود .الرجاء المساعدة :rolleyes:

Date Date::operator +=(int d)

{

Date date = *this;

date.addDays(d);

return date;

}

Date& Date::addDays(int days){

if (!setDay(this->day + days)){

setDay( ((this->day + days) % 30));

addMonths( (this->day + days) / 30);

}

return *this;

}

Date& Date::addMonths(int months){

if (!setMonth(this->month + months)){

setMonth((this->month + months) % 12);

addYears( (this->month + months) / 12);

}

return *this;

}

Date& Date::addYears(int years){

setYear(year + years);

return *this;

}

bool setDay(int d){

if (d > 0 && d < 31){

day = d;

return true;

}

else return false;

}

bool setMonth(int m){

if (m > 0 && m < 13){

month = m;

return true;

}

else return false;

}

bool setYear(int y){

if (y > 1990){

year = y;

return true;

}

else return false;

}

bool setDay(char * d){return setDay(atoi(d));}

bool setMonth(char * m){return setMonth(atoi(m));}

bool setYear(char * y){return setYear(atoi(y));}

بإنتظار الردووود.

#2

وعليكم السلام ..

شوفي هذا الكود .. عدلت شي بسيط وجربته ومشى تمام

Date Date::operator +=(int d)
{

Date date = *this;

	*this = date.addDays(d);

	return *this;
}
#3

اذا ما زالت المشكله, ارجو وضع المشروع بالكامل, لاستطيع رأيت البرنامج بالكامل

ENG. IMAD, Programing is a way of life, It's in the air, we breath It's pumps through our veines, Without it, we soon crumble to dust

#4

المستانسه و Super_emad55 جزيتم خيرا خلاص ضبط معي. :)

هذا الموضوع مغلق.

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