Ошибка графического окна с использованием FLTK в ppp2 примере stroustrup - PullRequest
0 голосов
/ 11 октября 2018

Я получил эту ошибку:

C2664 'void Graph_lib :: Widget :: attach (Window &)': невозможно преобразовать аргумент 1 из 'Graph_lib :: Window' в 'Window &'

Вот код Window.h

namespace Graph_lib {

class Shape;    // "forward declare" Shape
class Widget;

class Window : public Fl_Window {

....

и код Window.cpp, где произошла ошибка

namespace Graph_lib {

....

void Window::attach(Widget& w)
{
    begin();            // FTLK: begin attaching new Fl_Wigets to this window

    **// I got error from this function**
    w.attach(*this);    // let the Widget create its Fl_Wigits
    end();              // FTLK: stop attaching new Fl_Wigets to this window
}

....

, и код GUI.h, которыйимеет класс виджетов

namespace Graph_lib {

....

class Widget {

....

virtual void attach(Window&) = 0;

....

Я пытался привести и создать переменную, но это все одно и то же.

Window& win = *this;
Graph_lib::Window& win = *this;
w.attach(static_cast<Window&>(*this));
w.attach(dynamic_cast<Window&>(*this));

Что мне делать?

...