Был такой вопрос: Преобразование char[] в string
В дополнение к нему у меня возник дополнительный вопрос по работе конструктора String(char *). Что происходит при вызове такого конструктора - выделяется отдельная область памяти для класса String в которую копируется содержимое char * ?
Либо формируется какая то ссылка на имеющийся char * и переменную char * уже нельзя уничтожать?
Т.е. в переменную класса String попадает копия строки char * - или попадает некий указатель на некую область памяти, которую нужно будет сохранять ?
const char txt[]="Пример";
char * b = &txt;
String s(b);
В описании конструктора std::string
сказано:
from c-string (4) string (const char* s);
Copies the null-terminated character sequence (C-string) pointed by s
т.е. копируется содержимое.
UPD в связи с комментариями про Arduino
Как верно заметил KoVadim, String
и std::string
- это совершенно разные классы.
На GitHub'е есть исходники в открытом доступе. Конкретно класс String
описан в файле WString.cpp
Там также как и в std::string
конструктор копирует данные.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Через std::setfill('0') задаём заполнитель, через std::setw(N) задаём ширину выводимого числаВсё что не занято самим числом будет заполнено символом-заполнителем
Переопределил стандартный view у QComboBox по этому примеру:
Суть проблеми в том что у меня есть две модели, при одной модели Edit работаеш хорошо но когда добавил вторую модель с таким же функционалом...