C++ no instance of constructor matches the argument list e0289

  c++

So the code should work, but it is not. How can I fix it?
enter image description here

#include <iostream>

class Button{
private:
unsigned width;
unsigned height;

public:

Button(): width(0), height(0){};

Button(unsigned _width, unsigned _height): 
    width(_width), height(_height){};

unsigned getWidth(){ return width; };

unsigned getHeight(){ return height; };

void setWidth(unsigned _width){ width = _width; };

void setHeight(unsigned _height){ height = _height; }; 

};

class Window{
protected:
Button button;

int x;
int y;

public:

Window(){
    x = y = 0;
}

Window(int _x, int _y, Button _button):
    x(_x), y(_y), button(_button){};

~Window(){
    x = 0;
    y = 0;
}

};

class Menu: public Window{
private:
char *title;

public:
Menu() = default;

Menu(char* _title, int _x, int _y, Button _button):
    title(_title), Window(_x, _y, _button){
        std::cout << "Menu has been created." << std::endl;
    };

~Menu(){
    title = NULL;
    std::cout << "Menu has been deleted." << std::endl;
}

friend std::ostream& operator<<(std::ostream& os, Menu& menu){
    os << "Button "" << menu.title << "" on (" << menu.x << "," << menu.y << ") with size " << menu.button.getWidth() << "x" << menu.button.getHeight() << ".";
    return os;  
} 

};

int main(){

Button button(10, 10);

Menu menu("A main menu", 5, 5, button);

std::cout << menu << std::endl;

return 0;

}

Source: Windows Questions C++

LEAVE A COMMENT