Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вернуть С-строку из обьекта класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как для класса написать перегруженный оператор new? http://www.cyberforum.ru/cpp-beginners/thread924017.html
пробую таким способом, но ошибка class X { public: X(int x) :mX(x) { } void SetX(int x) { mX=x; } int GetX() const { return mX; } void *operator new(size_t size, void *p) { return...
C++ Существует ли "массив" переменных ? Существует ли "массив" или какая-либо структура для хранения переменных, чтобы была возможность в процессе выполнения программы удалять или добавлять некоторые переменные ? Ну, например: Есть... http://www.cyberforum.ru/cpp-beginners/thread924012.html
Перегрузка операторов C++
Помогите с задачей на перегрузку операторов. (ппц мозговынос). 1)Создать class Mouse со свойством int power. #include <iostream> #include <conio.h> using namespace std; class Mouse {
Удаление элементов из вектора C++
Что я делаю не так string f="/.+(STL).$1/"; vector<string> words; words.push_back(f); vector< string >::iterator first = find( words. begin(), words.end(), "+" ); vector< string...
C++ Почему не создается второй объект класса? http://www.cyberforum.ru/cpp-beginners/thread923943.html
#include <string> // Заголовочный файл students.h class students { public: students(std::string user_name, std::string user_last_name) { set_name(user_name);...
C++ Посещение потоком определенной функции Можно ли как то узнать, какие именно потоки прошли через заданную функцию? студия 2012. подробнее

Показать сообщение отдельно
Kuzia domovenok
2117 / 1946 / 190
Регистрация: 25.03.2012
Сообщений: 6,750
Записей в блоге: 1
16.07.2013, 20:11
Цитата Сообщение от i8086 Посмотреть сообщение
void c_str(char* str) {
// сформировать строку и записать в str
}
Если класс сам по себе не хранит строку, а генерирует её по запросу, то лучше так.
Если это нечто вроде std::string, который внутри хранит эту строку, то лучше const char * c_str()

Добавлено через 15 минут
Вообще, не стоит забывать, что string::c_str очень специфичная функция, возвращающая временный указатель на С-строку, который крайне вероятно станет невалидным после почти любого действия со строкой.
поэтому, в любом случае, при получении С-строки из string
если расчитываешь где-то ею долго и надёжно пользоваться,
необходимо срочно скопировать эту результат, полученный из c_str() в свой надёжно выделенный в памяти массив char
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.