我有一个名为TestClass的wxHtmlListBox的子类,但是我收到了错误:
/usr/include/wx-2.8/wx/string.h:682:0 /usr/include/wx-2.8/wx/string.h:682:错误:'wxString :: wxString(int)'是私人
MainFrame.cpp:106:0 MainFrame.cpp:106:错误:在此上下文中
MainFrame.cpp第106行是这样的:
TestClass *tc = new TestClass(this, wxID_ANY, wxDefaultPosition,
wxDefaultSize, NULL, wxBORDER_DEFAULT);
找到TestClass的文件
对此有何想法?
答案 0 :(得分:2)
您将wxBORDER_DEFAULT传递给const wxString引用:
TestClass(
wxWindow* parent, // this
wxWindowID id = wxID_ANY, // wxID_ANY
const wxPoint& pos = wxDefaultPosition, // wxDefaultPosition
const wxSize& size = wxDefaultSize, // wxDefaultSize
long style = 0, // NULL
const wxString& name = wxHtmlListBoxNameStr ); // wxBORDER_DEFAULT
...但是wxBORDER_DEFAULT
是枚举的一部分(基本上是整数):
enum wxBorder
{
/* this is different from wxBORDER_NONE as by default the controls do have */
/* border */
wxBORDER_DEFAULT = 0,
wxBORDER_NONE = 0x00200000,
wxBORDER_STATIC = 0x01000000,
wxBORDER_SIMPLE = 0x02000000,
wxBORDER_RAISED = 0x04000000,
wxBORDER_SUNKEN = 0x08000000,
wxBORDER_DOUBLE = 0x10000000, /* deprecated */
wxBORDER_THEME = 0x10000000,
/* a mask to extract border style from the combination of flags */
wxBORDER_MASK = 0x1f200000
};
所以它使用你为wxString提到的构造函数:
wxString::wxString(int)
...这是私人的,因此你会收到错误。尝试传入一个字符串或NULL: - )
答案 1 :(得分:2)
您的第106行与TestClass的构造函数不匹配,尤其是最后一个参数/参数:
TestClass(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = wxHtmlListBoxNameStr);
TestClass
想要一个字符串,而不是边框样式。