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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
SashaV21
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 27
#1

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

06.10.2010, 22:05. Просмотров 1623. Ответов 13
Метки нет (Все метки)

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

Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и п - C++
Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и путем копирования другой...

Определить класс-строку - C++
Здравствуйте. Объясните пожалуйста как сделать это задание? Определить класс-строку. В класс включить два конструктора: для...

Определить класс-строку. Предусмотреть функции поиска слова в строке - C++
Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и путем копирования другой...

Определить класс «строка символов» с компонентными данными: длина строки, указатель на строку. Перегрузить оп - C++
Определить класс «строка символов» с компонентными данными: длина строки, указатель на строку. Перегрузить операции: << (вывод в виде...

Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты, содержащий разн - C++
Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты,...

Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы - C++
Создать класс Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный класс Date с полями: год, месяц и день....

13
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");
}
1
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
06.10.2010, 22:25 #3
gooseim:
Сомневаюсь что это рабочий код.
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 22:28 #4
Genius Ignat, ваши мысли?
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
06.10.2010, 22:33 #5
данный кусок
//-------------
if(str!=NULL)
delete[] str;
//-----------------
не нужен ни в конструкторе копирования ни в простом конструкторе
2
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 22:34 #6
Genius Ignat,
0
SashaV21
0 / 0 / 0
Регистрация: 10.05.2010
Сообщений: 27
06.10.2010, 22:39  [ТС] #7
Так какой окончательный код получится, уважаемые форумчане?)
0
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, так нормально?
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
06.10.2010, 22:42 #9
C++
1
2
3
4
~my_string()
    {
       if(str!=NULL)delete[] str;  //так как может быть использован конструктор умолчания.
    }
1
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
06.10.2010, 22:46 #10
Genius Ignat, с одной стороны да, с другой стороны все равно будет работать.

Добавлено через 2 минуты
По стандарту операция delete (T*)0 имеет право на существование.
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
06.10.2010, 22:52 #11
gooseim:
На всякий случай: допустим в компиляторе VC++ 6.0 нужно делать проверку иначе будет
runtime error.
1
studentka_iz_zp
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 9
25.10.2013, 00:47 #12
Уважаемые форумчани, нужна Ваша помощь..! каков итог программы , включая последнюю часть задания(сортировки и подсчёта)?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7424 / 4539 / 673
Регистрация: 29.11.2010
Сообщений: 12,319
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");
}
0
studentka_iz_zp
0 / 0 / 0
Регистрация: 08.11.2012
Сообщений: 9
25.10.2013, 16:09 #14
очень смешно((
дело не в лени.. а в непонимании
0
25.10.2013, 16:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2013, 16:09
Привет! Вот еще темы с ответами:

Наследование: Определить класс vector2 как вектор на плоскости. Определить для него операции и функции - C++
Уже который час мучаюсь не выходит помогите пожалуйста Определить класс vector2 как вектор на плоскости с данными x и y....

Класс содержащий строку символов - C++
Добрый день. Не пойму как правильно написать след. код. Задача: 13. Заполните массив данными и затем выведите их на экран. Для...

Класс - преобразование массива в строку - C++
#include &lt;iostream&gt; class str { public: ~str() // Деструктор, удаляет массив { delete stroka; dlina_stroki = 0;

Создать класс строку в С++. Переопределение операторов - C++
Доброго времени суток. Подскажите пожалуйста в чём ошибка в операторе &gt;&gt;. Когда его вызываю в основной программе, то почему-то компилятор...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

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