I have the following two classes:
class Image
{
public:
    Image(int size) { _size = size; };
    ~Image();
private:
    int _size;
};
class Renderer
{
public:
    Renderer(int size = 10) { _image = {size}; };
    ~Renderer();
private:
    Image _image;
};
On compilation I get: "no appropriate default constructor available".
If I add Image(); the error message goes away. 
So my question is, why is the empty constructor necessary? Under which circumstances will it get called?
 
     
    