2014-05-07 3 views
-1

Я пытаюсь решить проблему на C++, но потому что я ничему не знаю, как это сделать! Проблема в том, что если вы можете мне помочь :):Тест на C++ с классами

Используя приведенный ниже код на C++, создайте соответствующие конструкторские функции о классах «автомобиль» & «Грузовик». Каждая функция должна передать соответствующие аргументы родительскому классу автомобиля. Кроме того, функциональный автомобиль должен инициализировать пассажиров при создании объекта. Класс автомобиля должен инициализировать loadlimit при создании объекта.

Заявление объектов с автомобилем() и грузовиком() будет выглядеть следующим образом:

автомобиль Ob (пассажиры, колесо, диапазон);

грузовик ob (грузовой диск, колеса, дальность);

#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 tottally beginer, и вот как проходит тест. Извините. Я полагаю, что функции конструктора, которые потребуют испытания, будут заменены на классы грузовых автомобилей и транспортных средств .. (?) Не знаю так много, чтобы направлять/помогать .. ima tottally noob в C++, im пытается узнать с помощью моих знаний c:/ – user3610729

ответ

2

Класс Car и Truck не имеют конструкторов, которые принимают необходимые параметры и передать в конструктор базового класса. они должны быть такими:

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)' будет * попытаться * создать временную, но не инициализирующую базовую часть, но не сработает, так как у 'vehicle' нет конструктора по умолчанию. – Rakib

+0

@Rakibul, сам класс показывает определение vechicle (w, r) – Subhajit

+0

Он должен получить '' не соответствующую ошибку конструктора по умолчанию', так как 'car :: car' не передает аргументы базового конструктора. – Rakib

0

Базовый элемент инициализации

Car Constructor:

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

Truck Constructor:

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;  
      }   
     }; 

То же самое для грузовиков

Смежные вопросы