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

Определить класс-строку - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
SashaV21
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 27
06.10.2010, 22:05     Определить класс-строку #1
Помогите пожалуйста, написать прогу.
Определить класс-строку. В класс включить два конструктора: для опре-деления класса строки строкой символов и путем копирования другой строки (объекта класса строки). Предусмотреть функции сортировки слов в строке по-алфавиту и подсчёта количества слов.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2010, 22:05     Определить класс-строку
Посмотрите здесь:

Наследование: Определить класс vector2 как вектор на плоскости. Определить для него операции и функции C++
C++ Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы
C++ Написать класс, содержащий строку с именем человека
C++ Класс - преобразование массива в строку
C++ Определить класс-строку. Предусмотреть функции поиска слова в строке
Создать класс строку в С++. Переопределение операторов C++
C++ Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты, содержащий разн
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 22:15     Определить класс-строку #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
С конструкторами вот, остальное лень пока писать.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <cstdlib>
#include <cstring>
 
using namespace std;
 
class my_string
{
protected:
    char* str;
public:
    my_string():str(NULL){}
    my_string(const char* str_)
    {
        if(str!=NULL)
            delete[] str;
        str=new char[strlen(str_)+1];
        strcpy(str, str_);
    }
    my_string(const my_string& str_)
    {
        if(str!=NULL)
            delete[] str;
        str=new char[strlen(str_.str)+1];
        strcpy(str, str_.str);
    }
    ~my_string()
    {
        delete[] str;
    }
    const char* c_str() const
    {
        return str;
    }
};
 
int main()
{
    my_string str("text");
    cout<<str.c_str()<<endl;
    system("pause");
}
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
06.10.2010, 22:25     Определить класс-строку #3
gooseim:
Сомневаюсь что это рабочий код.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 22:28     Определить класс-строку #4
Genius Ignat, ваши мысли?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
06.10.2010, 22:33     Определить класс-строку #5
данный кусок
//-------------
if(str!=NULL)
delete[] str;
//-----------------
не нужен ни в конструкторе копирования ни в простом конструкторе
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 22:34     Определить класс-строку #6
Genius Ignat,
SashaV21
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 27
06.10.2010, 22:39  [ТС]     Определить класс-строку #7
Так какой окончательный код получится, уважаемые форумчане?)
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 22:39     Определить класс-строку #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <cstdlib>
#include <cstring>
 
using namespace std;
 
class my_string
{
protected:
    char* str;
public:
    my_string():str(NULL){}
    my_string(const char* str_)
    {
        str=new char[strlen(str_)+1];
        strcpy(str, str_);
    }
    my_string(const my_string& str_)
    {
        str=new char[strlen(str_.str)+1];
        strcpy(str, str_.str);
    }
    ~my_string()
    {
        delete[] str;
    }
    const char* c_str() const
    {
        return str;
    }
};
 
int main()
{
    my_string str("text");
    cout<<str.c_str()<<endl;
    system("pause");
}
Genius Ignat, так нормально?
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
06.10.2010, 22:42     Определить класс-строку #9
C++
1
2
3
4
~my_string()
    {
       if(str!=NULL)delete[] str;  //так как может быть использован конструктор умолчания.
    }
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 22:46     Определить класс-строку #10
Genius Ignat, с одной стороны да, с другой стороны все равно будет работать.

Добавлено через 2 минуты
По стандарту операция delete (T*)0 имеет право на существование.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
06.10.2010, 22:52     Определить класс-строку #11
gooseim:
На всякий случай: допустим в компиляторе VC++ 6.0 нужно делать проверку иначе будет
runtime error.
studentka_iz_zp
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 9
25.10.2013, 00:47     Определить класс-строку #12
Уважаемые форумчани, нужна Ваша помощь..! каков итог программы , включая последнюю часть задания(сортировки и подсчёта)?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5666 / 3145 / 356
Регистрация: 29.11.2010
Сообщений: 8,420
25.10.2013, 01:41     Определить класс-строку #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <cstdlib>
#include <cstring>
 
using namespace std;
 
class my_string
{
protected:
    char* str;
public:
    my_string():str(NULL)
    {
        std::cout << "I'm lazy and can't write anything for myself\n";
    }
    my_string(const char* str_) : str(new char[strlen(str_)+1])
    {
        strcpy(str, str_);
    }
    my_string(const my_string& str_) : str(new char[strlen(str_.str)+1])
    {
        strcpy(str, str_.str);
    }
    my_string& operator= (const my_string& str_)
    {
        if (this != &str_)
        {
            clear();
            str=new char[strlen(str_.str)+1];
            strcpy(str, str_.str);
        }
        return *this;
    }
    ~my_string()
    {
        clear();
    }
    const char* c_str() const
    {
        return str;
    }
  private:
    void clear()
    {
        if (str) delete[] str;
    }
};
 
int main()
{
    my_string str("text");
    cout<<str.c_str()<<endl;
    system("pause");
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 16:09     Определить класс-строку
Еще ссылки по теме:

Класс Time. Не могу перевести на другую строку C++
Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и п C++
C++ Создать класс String – строку, используя динамическую память
Класс содержащий строку символов C++
Определить класс «строка символов» с компонентными данными: длина строки, указатель на строку. Перегрузить оп C++

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

Или воспользуйтесь поиском по форуму:
studentka_iz_zp
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 9
25.10.2013, 16:09     Определить класс-строку #14
очень смешно((
дело не в лени.. а в непонимании
Yandex
Объявления
25.10.2013, 16:09     Определить класс-строку
Ответ Создать тему
Опции темы

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