2014-05-07 44 views
-1

我試圖解決C++中的問題,但因爲我是一個begginer我不知道該怎麼做! 問題是,如果你能幫我:) :):類C++測試

通過使用下面的C++代碼創建關於類「汽車」&「卡車」正確的構造函數。每個功能必須將合適的參數傳遞給父級車輛。另外,功能汽車在創建對象時應該初始化乘客。卡車類應在創建對象時初始化裝載限制。

對象與汽車()和卡車()語句將如下:

車OB(人次,輪轂,範圍);

truck ob(loadlimit,wheels,range);

#include <iostream> 
using namespace std; 
    class vehicle{   
      int num_wheels;  
      int range; 
      public: 
       vehicle(int w, int r){num_wheels = w; range = r;} 
       void showv(){ 
        cout << "Wheels: " << num_wheels << endl; 
        cout << "Range: " << range << endl; 
       } 
    }; 

    class car : public vehicle { 
      int passengers; 
      public: 
       void show(){ 
        void showv();  
        cout << "Passengers: " << passengers << endl;  
       }   
    }; 

    class truck : public vehicle {   
      int loadlimit;   
      public:   
       void show(){  
        void showv();   
        cout << "Loadlimit: " << loadlimit << endl;   
       }   
    }; 

    int main(){   
     car c(5, 4, 500);   
     truck t(3000, 12, 1200);   
     cout << "Car: " << endl;   
     c.show();   
     cout << "Truck: " << endl;   
     t.show();   
     return 0;   
    } 
+0

同樣的事情在哪裏級「車」和「卡車」的人的其他數據成員需要初始化? – Subhajit

+0

感謝您的回答。我不知道它可能會在哪裏開始,那是怎麼測試..對不起。 (?) 不知道這麼多來引導/幫助.. IM Cott,我試着學習與我的C知識:/ – user3610729

回答

2

CarTruck不具有采取必要參數的構造函數,並傳遞給基類的構造函數。他們應該是這樣的:

class car : public vehicle { 

    int passengers; 

public: 

    car(int w,int r,int p): vehicle(w,r), passengers(p){} 
    void show(){ 

     void showv(); 

     cout << "Passengers: " << passengers << endl; 

    } 
}; 

class truck : public vehicle { 

     int loadlimit; 

     public: 

      truck(int r, int w, int l):vehicle(r,w),loadlimit(l){} 

      void show(){ 

       void showv(); 

       cout << "Loadlimit: " << loadlimit << endl; 

      } 

}; 
+0

@ user3610727如果這個或任何答案已經解決了您的問題,請點擊複選標記,考慮 [接受它](http://meta.stackexchange.com/q/5234/179419)。 這表示您已經找到了解決方案,並向回答者和您自己提供了一些名譽。沒有義務這樣做。 – Rakib

+0

感謝很多傢伙:) – user3610729

-1

簡單的解決方案,

car::car(int w,int r,int p) 
{ 
    passengers = p; 
    vehicle::vehicle(w,r); 
} 
+0

調用'vehicle :: vehicle(w,r)'將嘗試*創建一個臨時的,不初始化的基礎部分,但會失敗,因爲'車輛'沒有默認的構造函數。 – Rakib

+0

@Rakibul,類本身顯示了vechicle的定義(w,r) – Subhajit

+0

它應該得到'沒有合適的默認構造函數錯誤',因爲'car :: car'不傳遞基類構造函數參數。 – Rakib

0

基地成員初始化

Car構造:

car(int a, int b, int c) : vehicle(a,b),passengers(c){}; //initialiser list 

Truck構造:

truck(int g, int h, int j):vehicle(g,h),loadlimit(j){} 
0

你需要一個承包商添加到汽車卡車

class car : public vehicle { 

      int passengers; 
      public: 
      car(int p) : vehicle(int w, int r) // Call the superclass constructor in the subclass' 
      { 
       passengers = p; 
      } 

      void show() 
      { 
       showv();  
       cout << "Passengers: " << passengers << endl;  
      }   
     }; 

卡車