in constructor, no matching function call to

前端 未结 2 1646
长情又很酷
长情又很酷 2021-01-28 05:58

My error

gridlist.h: In constructor ‘GridList::GridList(WINDOW*, int, int, int, int, int)’:
gridlist.h:11:47: error: no matching function for call to ‘Window::Wi         


        
相关标签:
2条回答
  • 2021-01-28 06:06

    Why are you just calling the constructor in the initlizer list ? usually you initialize member variables there so there would be member variable of type window there.

    GridList(WINDOW *parent = stdscr, int colors = MAG_WHITE, 
      int height = GRIDLIST_HEIGHT, int width = GRIDLIST_WIDTH, int y = 0, int x = 0)
      : m_window(parent, colors, height, width, y, x) { }
    
    0 讨论(0)
  • 2021-01-28 06:08

    Your GridList class has a member variable of type Window. Since all members are (default if unspecified) initialized before the body of the constructor, yours looks similar to this in reality:

    GridList::GridList (...)
     : Window(...), m_tendMenu() //<--here's the problem you can't see
    

    Your member variable is being default initialized, but your Window class has no default constructor, hence the problem. To fix it, initialize your member variable in your member initializers:

    GridList::GridList (...)
     : Window(...), m_tendMenu(more ...), //other members would be good here, too
    

    The reason your Button class works is because it doesn't have a member of type Window, and thus, nothing being default-initialized when it can't be.

    0 讨论(0)
提交回复
热议问题