I am new to C ++. I like to explore the idea of ββInheritance in C ++. Whenever I try to compile the following code, I get an error:
for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated. D:\C Practice Files\Vehicle.cpp: In function `int main()': D:\C Practice Files\Vehicle.cpp:26: error: `void Vehicle::setStationary_state(bool)' is inaccessible D:\C Practice Files\Vehicle.cpp:141: error: within this context D:\C Practice Files\Vehicle.cpp:141: error: `Vehicle' is not an accessible base of `Ship' Execution terminated
Here is my code:
#include <iostream.h> #include <conio.h> using std::string; class Vehicle{ private: bool stationary_state; double max_speed; double min_speed; double weight; double volume; int expected_life; string fuel_type; string model; string year_of_manufacture; public: Vehicle(){ } void setStationary_state(bool m){ stationary_state = m; } bool getStationary_state(){ return stationary_state; } }; class Bike:Vehicle{ private: string bike_type; public: void setBike_Type(string t){ type = t; } string getBike_Type(){ return bike_type; } }; class Aircraft:Vehicle{ private: short no_of_wings; public: void setNo_of_wings(short wings) { no_of_wings = wings; } short getNo_of_wings() { return no_of_wings; } }; class Car:Vehicle{ private: string reg_no; string type; public: void setType(string t) { if ((t=="Pneumatic") || (t=="Hydraulic")) { type = t; } else { cout<<"\nInvalid entry. Please enter the correct type:"; setType(t); } } }; class Ship:Vehicle{ private: bool has_radar_detection; public: void setRadar_Detection(bool r){ has_radar_detection = r; } bool getRadar_Detection(){ return has_radar_detection; } }; int x; main() { Vehicle v; Bike b; Car c; Aircraft a; Ship s; s.setStationary_state(true); c.setType("xyz"); /*v.setStationary_state(true); if (!(v.getStationary_state())) { cout<<"Vehicle is moving"; } else { cout<<"Vehicle is at rest"; } */ getch(); }
What is really wrong there? What is the cause of the error and how to avoid it. Please explain in detail.
Muhammad Maqsoodur Rehman
source share