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

ماهو الخطأ في في برنامجي في c++

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

السلام عليكم ,

انا اليوم كان عندي عملي برمجة 2 وكان المطلوب نعمل برنامج من نوع كلاس لـ Bus

#include <iostream>
using namespace std;

class Bus{
      private:
              int passenger;
              bool status;
              int bus_num;

              public:
                     Bus(int bus_num, int passenger , bool status){
                            bus_num=2;
                           passenger=25;
                           status= true || false;}

                           Bus(const Bus & obj)// copy constructor
                           {

                           bus_num = obj.bus_num;
                           passenger =obj.passenger;
                           status =obj.status;}

                           ~Bus(){ delete bus_num,  passenger ,  status;}
                           void SetPassenger( int p){  passenger = p;}

                                void SetStatus(bool st){ status = st;}

                                void SetBus_num(int b_n){ bus_num=b_n;}

                                int GetPassenger() { return this->passenger;}
                                bool GetStatus(){ return this-> status;}
                                int GetBus_num(){ return this-> bus_num;}

                                void print(){
                                     cout<< " Bus number = "<< bus_num<<endl;
                                     cout<< " Passenger numbers = "<< passenger <<endl;
                                     cout<< " Status " <<status<<endl;
                                     if ( passenger >25)
                                         cout<< "Sorry ! we can't add more passengers .";
                                         else
                                         cout<< " You can add .";}

                                     };

                                    int main(){
                                        Bus b1(10,8,0);
                                        Bus b2(20,2,1);
                                        b1.GetPassenger();
                                         b1.GetStatus();
                                         b1.GetBus_num();

                                         b2.GetPassenger();
                                         b2.GetStatus();
                                         b2.GetBus_num();

                                         int num ;
                                         cout<<" Enter 1 if you want to add passenger  ,Enter 2 if you want to compare: ";
                                         cin >>num;

                                         if (num ==1)
                                         {
                                                 b1.print();}

                                         if (num==2){
                                                     b2.print();
                                                     }


                                                     return 0;
                                                     }

انا ابغى اعرف وين الخطأ , مع اني عدلتي فيه بعدما تم التشييك عليه ,

لكن باقي خطأ ,

ممكن تساعدوني وتوضيح الصواب

#2
~Bus(){ delete &bus_num;  }

المؤثر delete يحتاج عنوان ذاكرة وليس إسم متغير.

في برنامجك لا داعي لدالة الهدم، الكمبايلر سيقوم بالواجب تلقاءيا.

أما متى تحتاج أن تكتب دالة هدم بنفسك فهناك قاعدة تسمى قاعدة الثلاثة.

تم تعديل هذه المشاركة بواسطة A.S Hack في 24 أكتوبر 2011 في 12:03

1

" إن الله كتب الإحسان على كل شيء"

::

الإرادة ... تحقق السيادة.

#3

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

طالما ان أسماء البارمترات هي نفس أسماء المتحولات في الصف , استخدم this ... أو غير اسماء البارمترات ..

	Bus(int bus_num, int passenger , bool status){
		this->bus_num=2;
		this->passenger=25;
		this->status= true || false;}

تم تعديل هذه المشاركة بواسطة houssam11350_11350 في 24 أكتوبر 2011 في 12:19

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#4

السلام عليكم لقد عدلت برنامجك إليك النسخة المعدلة

#include <iostream>

using namespace std;
class Bus
{
    public:
        Bus();
        Bus(int bus_num,int passenger, bool status);
    private:
        int V_passenger;
        bool V_status;
        int V_bus_num;


    public:
        void setPassenger(int Passenger);
        int getPassenger();
        void setBus_num(int Bus_num);
        int getBus_num();
        void setStatus(bool Status);
        bool getStatus();
        void print();
};
Bus::Bus()
{

}
Bus::Bus(int bus_num,int passenger, bool status)
{
    V_bus_num = bus_num;
    V_passenger = passenger;
    V_status = status;

}
void Bus::setPassenger(int Passenger)
{
    V_passenger = Passenger;
}
int Bus::getPassenger()
{
    return V_passenger;
}

void Bus::setBus_num(int Bus_num)
{
    V_bus_num = Bus_num;
}
int Bus::getBus_num()
{
    return V_bus_num;
}
void  Bus::setStatus(bool Status)
{
    V_status = Status;
}
bool Bus::getStatus()
{
    return V_status;
}
void Bus::print()
{
    cout<< " Bus number = "<< V_bus_num<<endl;
    cout<< " Passenger numbers = "<< V_passenger <<endl;
    cout<< " Status " <<V_status<<endl;
}
int main()
{
    Bus b(45,5,0);
    Bus b2;
    b.setPassenger(10);
    b.print();
    b2.setBus_num(2);
    b2.setPassenger(25);
    b2.setStatus(false);
    b2.print();
    return 0;
}

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