I'm trying to build a Linked List who's elements are of my own specified type. Now I'm not going to lie I'm winging a lot of this having not had much experience with OOP in C++ but I'm stuck with a single error.

My LinkedList:

```
#include "Vehicle.h"
#include "string"
using namespace std;

class LinkedList
{
private:
    struct Node
    {
        Vehicle data;
        Node* next;
    };

    Node* root;
    int noofitems;

public:
    LinkedList();
    int getNoOfItems();
    Vehicle getItemByIndex(int index);
    void addItem(Vehicle itemIn);
    void deleteItem();
    void insertItem(Vehicle itemIn);
    ~LinkedList();
};

```

The Constructor and addItem()

```
LinkedList::LinkedList() : root(NULL), noofitems(0) {}

void LinkedList::addItem(Vehicle itemIn)
{
    Node* temp;
    temp = new Node();
    temp->data = itemIn;
    temp->next = this->root;
    this->root = temp;
}

```

My compiler is giving me this error:
 `error C2512: 'LinkedList::Node' : no appropriate default constructor available`. Now I've tried giving the struct a constructor like so:

```
struct Node
{
    Vehicle data;
    Node* next;
    Node() : next(NULL) {}
};

```

But then I get a new error on top of the old one: `IntelliSense: no default constructor exists for class "Vehicle"`. The word constructor is starting to look wrong and I'm really frustrated. Thanks In advance.

By the way if details of the vehicle class are needed:

```
class Vehicle
{

protected:
    string make;
    string model;
    string regNo;
    int engineSize;
    bool rented;

public:
    Vehicle(string makeIn, string modelIn, string regNoIn, int engineSizeIn);
    string getMakeModel(); // return two values concatinated
    string getRegNo();
    int getEngineSize();
    bool getRented();
    void setRented(bool rentedIn);
    ~Vehicle();
};

Vehicle::Vehicle(string makeIn, string modelIn, string regNoIn, int engineSizeIn) :
                make(makeIn), model(modelIn), regNo(regNoIn), engineSize(engineSizeIn),
                rented(false)
{}

string Vehicle::getMakeModel()
{
    return make + " " + model;
}

string Vehicle::getRegNo()
{
    return regNo;
}

int Vehicle::getEngineSize()
{
    return engineSize;
}

bool Vehicle::getRented()
{
    return rented;
}

void Vehicle::setRented(bool rentedIn)
{
    rented = rentedIn;
}

Vehicle::~Vehicle(){}

```