Hi, I'm working on a basic program to practice working with inherited classes, parent - child and grandchild. The problem is the book for my class is awful and any examples I find online are far to in depth for me to learn anything from them since my program is so basic. The basic idea is I have a Transport class which has 3 children - land, air, and water. There is also a class called military so some of the transports can have military attributes. I then have a file called tie3.h which has all the actual vehicles, cars, planes etc. The error I am getting is this:
2 C:\Dev-Cpp\240c2\air.h:1, from tier3.h In file included from air.h:1, from tier3.h
3 C:\Dev-Cpp\240c2\tier3.h:2, from main.cc from tier3.h:2, from main.cc
4 C:\Dev-Cpp\240c2\transport.h redefinition of `class Transport'
4 C:\Dev-Cpp\240c2\transport.h previous definition of `class Transport'
5 C:\Dev-Cpp\240c2\air.h variable or field `output' declared void
5 C:\Dev-Cpp\240c2\air.h expected `;' before '(' token
6 C:\Dev-Cpp\240c2\air.h variable or field `input' declared void
6 C:\Dev-Cpp\240c2\air.h expected `;' before '(' token
13 C:\Dev-Cpp\240c2\air.h expected constructor, destructor, or type conversion before '(' token
13 C:\Dev-Cpp\240c2\air.h expected `,' or `;' before '(' token
Here is my tier3.h:
and here is air.h, water and land are basically the same:Code:#include "military.h" #include "air.h" #include "land.h" #include "water.h" class Car:public Land{ hp = 200; top_speed = 110; kpg = 30; cost = 15000; }; class Truck:public Land{ hp = 230; top_speed = 80; kpg = 22; cost = 17000; }; class Bike:public Land{ hp = 0; top_speed = 25; kpg = 0; cost = 100; }; class Car:public Land, public Military{ hp = 200; top_speed = 110; kpg = 30; guns = 2; intel_radius = 3; armor_weight = 150.75; cost = 35000; }; ////////////////////////////////////// class Glider:public Air{ engine_hp = 0; wing_span = 20; propellars = 0; seats = 2; cost = 500; }; class CropDuster:public Air{ engine_hp = 240; wing_span = 40; propellars = 1; seats = 2; cost = 13000; }; class SpyPlane:public Air, public Military{ engine_hp = 900; wing_span = 100; propellars = 5; seats = 33; cost = 1200000; }; ///////////////////////////////////////// class JetSki:public Water{ top_speed = 50; size = 12; cost = 3000; }; class RiverBoat:public Water{ top_speed = 30; size = 135; cost = 69000; }; class Destroyer:public Water, public Military{ top_speed = 80; size = 535; cost = 890000; };
I think it has something to do with not having a constructor but my book says it will use a default constructor and I don't know where I would put it.Code:#include "transport.h" class Air:public Transport{ public: //double cost(){return ((wing_span-propellars)/seats)*engine_hp;} void output(iostream ofs); void input(fstream ins); protected: int engine_hp, wing_span, propellars, seats; }; Air::output(iostream outs){ if(outs == cout){ outs << "Engine HP: " << engine_hp << "Wing Span: " << wing_span << "Propellars: " << propellars << "Seats: " << seats << endl; else outs << engine_hp << endl << wing_span << endl << propellars << endl << seats << endl; } Air::input(fstream ins){ getline(engine_hp, ins); getline(wing_span, ins); getline(propellars, ins); getline(seats, ins); }
Thanks
-alex