Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> класс String без .NET, не работает 
:(
    Опции темы
nns2009
Дата 1.2.2009, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: нет
Всего: 1



Я решил реализовать что-то подобное классу String из .NET с таким же именем, но компилятор выдаёт мне кучу (вроде 9) ошибок.
Подскажите, что неправильного с этим кодом?
Класс не такой уж и маленький поэтому прикреплю его к сообщению. 
Реализовал кучу всего, но подскажите как
1) компилятор требует чтобы operator= был определён не дружественной, а классовой функцией, а можно как-нибудь по другому реализовать чтобы переменной типа char* можно было свободно присваивать объект моего класса(тект в моём объекте)?
2) чтобы в функции которые требуют параметра типа char* можно было свободно передавать объект моего класса без явного(хотя бы с явным) преобразования?

Вот объявление моего класса:
Код

#include <string.h>

class String
{
public:
    enum type
    {
        const_len = 0,
        any_len = 1,
        same = 2,
    } ;

    char* text;
    int lenght;
    type TypeOfString;

    String();
    String(char* p, type tos = any_len);
    String(int len, type tos = const_len);
    String(char ch, int repeat = 1, type tos = any_len);
    String(String& str, type tos = same);

    ~String() { delete [] text; }

    int GetLenght();
    void Clean();
    bool IsEmpty(); 
    char* GetText();

    String leftSubstring(int count);
    String Substring(int first);
    String Substring(int first, int count);
    String rightSubstring(int count);

    char GetChar(int index) ;
    char& operator[](int index) ;
    void SetChar(int index, char ch);

    friend String operator=(String& ls, String& rs);
    friend String operator=(String& ls, char* rs);
    friend String operator=(char* ls, String& rs);

    friend String operator+(String& ls, String& rs);
    friend String operator+(String& ls, char* rs);
    friend String operator+(char* ls, String& rs);

    friend String operator+=(String& ls, String& rs);
    friend String operator+=(String& ls, char* rs);
    friend String operator+=(char* ls, String& rs);
}


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  String.cpp 4,25 Kb
PM MAIL   Вверх
pan2004
Дата 1.2.2009, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 1
Всего: 9



Первый вопрос, который приходит в голову: ознакомился ли автор этого топика с std::string?


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
nns2009
Дата 1.2.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 1.2.2009

Репутация: нет
Всего: 1



Цитата(pan2004 @ 1.2.2009,  19:28)
Первый вопрос, который приходит в голову: ознакомился ли автор этого топика с std::string?

нет, а что это такое?
PM MAIL   Вверх
pan2004
Дата 1.2.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 1
Всего: 9



это я так намекаю, что велосипед делаете товарищ...

Добавлено через 1 минуту и 14 секунд
Цитата(nns2009 @  1.2.2009,  20:01 Найти цитируемый пост)
нет, а что это такое?

класс строк из стандартной библиотеки C++. По возможностям полностью покрывает написанное вами.
Подробнее ознакомится можно в учебнике по C++, или на www.cplusplus.com


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.