Я пытаюсь создать графический интерфейс с классом SimpleWindow, который содержит класс textPanel:
class textPanel{
private:
std::string text_m;
public:
textPanel(std::string str):text_m(str){}
~textPanel();
};
class SimpleWindow{
public:
SimpleWindow();
~SimpleWindow();
textPanel text_panel_m;
};
SimpleWindow::SimpleWindow():
text_panel_m(std::string temp("default value"))
{
}
Я хочу иметь возможность инициализировать text_panel_m, используя const char *, который преобразуется в std :: string без необходимости создавать другой конструктор, который принимает const char *. Должен ли я просто создать еще один конструктор с const char * в качестве аргумента? Если я сделаю это таким образом, есть ли способ уменьшить количество избыточного кода конструктора, используя c ++ 0x?
При описанном выше подходе у меня возникают трудности при инициализации переменной-члена text_panel_m. g ++ выдает мне следующую ошибку:
simpleWindow.cpp:49: error: expected primary-expression before ‘temp’
simpleWindow.cpp: In member function ‘bool SimpleWindow::drawText(std::string)’:
Как мне инициализировать переменную-член text_panel_m без использования конструктора по умолчанию?