Abstact class consturctor

I have the following class hierarchy. Vehicle is an abstract class which has a constuctor. The derived class has a constructor which adds one more member. When I try to create an instance of the derived class I get an error message which states that "object of abstract class type "Rented Bikes is not allowed" and "RentedBikes cannot instantiate abstract class.
How do I fix this?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Vehicle {
private:
	string ID;
	string name;
	string description;
	double time;
	Condition  vehicleCondition;

public:
	Vehicle() {}
	Vehicle(string ID, string name, string description, double time, Condition vehicleCondition)
	{
		this->ID = ID;
		this->name = name;
		this->description = description;
		this->time = time;
		this->vehicleCondition = vehicleCondition;
	}

	virtual double GetTotalPrice() = 0;
};

class RentedBikes : public Vehicle {
private:
	Quality rideQuality;

public:
	RentedBikes() {}
	RentedBikes(string ID, string name, string description, double time, Condition vehicleCondition, Quality rideQuality) :
		Vehicle(ID, name, description, time, vehicleCondition)
	{
		this->rideQuality=rideQuality;
	}
	
}; 

int main()
{
	
	RentedBikes r1("dd-55", "bike", "very good bike", 12.5, used, excellent);

	

    return 0;
} 
@wolfie16,
When I try to compile your code I get a whole plethora of errors, mainly because you haven't included headers, or your classes Condition or Quality. If you seek help, please provide the wherewithal for people to give it.

Anyway, when you declare this routine in vehicle:
virtual double GetTotalPrice() = 0;
then you are requiring it to be overridden in your derived class. But it isn't defined anywhere. Incidentally, you should include the whole error message, because it does tell you that.


Last edited on
Topic archived. No new replies allowed.