Форум программистов, компьютерный форум CyberForum.ru

реализация функции c_str() в моем классе Str - C++

Восстановить пароль Регистрация
 
Suares
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 106
10.12.2013, 19:59     реализация функции c_str() в моем классе Str #1
Ребята, вот есть у меня в классе Str данные:
C++
1
2
3
private:
    Vec<char> data;
    char* buffer;
В конструкторе я пишу:
C++
1
Str() :buffer(new char[32]) { }
Далее в функции, я хочу buffer заполнить данными:
const char* Str::c_str() const
{
delete [] buffer;
buffer = new char[data.size() + 1];
std::copy(data.begin(), data.end(), buffer);
buffer[data.size()] = '\0';

return buffer;
}
Это простенькая версия std::string. Так я хочу, что бы мой указатель на char, buffer, всегда удалялся при каждом вызове не константной функции, но в строке "buffer = new char[data.size() + 1];", ошибка:
выражение должно быть допустимым для изменения левосторонним значением.
Как её избежать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 19:59     реализация функции c_str() в моем классе Str
Посмотрите здесь:

C++ Одновременная реализация константного и неконстантного оператора [] в классе string
C++ Реализация методов в классе.
C++ Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str
C++ как создать функцию или программу, чтобы str состояла из цифр,а также давалась новой строке str
C++ Функции str.size() и str.length() - в чем их разница?
Как заставить Strncpy вложить в itog часть символов строки str, если дина str больше, чем кол-во нужных нам символов? C++
Реализация списка в классе. C++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.12.2013, 20:37     реализация функции c_str() в моем классе Str #2
Цитата Сообщение от Suares Посмотреть сообщение
Как её избежать?
Убрать константность метода.
Yandex
Объявления
10.12.2013, 20:37     реализация функции c_str() в моем классе Str
Ответ Создать тему
Опции темы

Текущее время: 05:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru