Использование wxAny в качестве класса контейнера для wxControls - PullRequest
0 голосов
/ 12 января 2011

Можно ли использовать класс wxAny для хранения класса wxCheckBox или других классов на основе wxControl?

wxPanel *panel = new wxPanel(this, wxID_ANY);
wxCheckBox test(panel, idMenuAbout + 1, wxT("Show title"), wxPoint(20, 20));
wxAny checkBox = test;

Приведенный выше код генерирует ошибку 'wxCheckBoxBase& wxCheckBoxBase::operator=(const wxCheckBoxBase&)’ is private

Спасибо.

1 Ответ

0 голосов
/ 12 января 2011

Проблема не в wxAny, а в том, что wxCheckBoxBase сделан недоступным для копирования:

wx / checkbox.h

class WXDLLEXPORT wxCheckBoxBase : public wxControl

protected:

     DECLARE_NO_COPY_CLASS(wxCheckBoxBase)
}

wx / defs.h

/*  --------------------------------------------------------------------------- */
/*  macro to define a class without copy ctor nor assignment operator */
/*  --------------------------------------------------------------------------- */

#define DECLARE_NO_COPY_CLASS(classname)        \
private:                                    \
    classname(const classname&);            \
    classname& operator=(const classname&);
...