Create a default constructor in C++

c++, default-constructor

Solution

Member functions (and that includes constructors and destructors) have to be declared in the class definition:

class Tree {
public:
    Tree(); // default constructor
private:
    Node *root;

};

Then you can define it in your .cpp file:

Tree::Tree() : root(nullptr) {
}

I threw in the `nullptr` for C++11. If you don't have C++11, use `root(0)`.

Problem

This might be a stupid question but I can't find a lot of information on the web about creating your own default constructors in C++. It seems to just be a constructor with no parameters. However, I tried to create my default constructor like this: ``` Tree::Tree() {root = NULL;} ``` I also tried just: ``` Tree::Tree() {} ``` When I try either of these I am getting the error: No instance of overloaded function "Tree::Tree" matches the specified type. I can't seem to figure out what this means. I am creating this constructor in my `.cpp` file. Should I be doing something in my header (`.h`) file as well?

Original source