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

строки: работа с динамической памятью, перегруженные конструкторы - C++

Восстановить пароль Регистрация
 
Alika07
 Аватар для Alika07
4 / 4 / 0
Регистрация: 04.12.2012
Сообщений: 39
17.02.2013, 22:43     строки: работа с динамической памятью, перегруженные конструкторы #1
Привет!
Есть задача:
Разработать класс String, который в дальнейшем будет использоваться для работы со строками.
Класс должен содержать:
конструктор по умолчанию, позволяющий создать строку длиной 80 символов;
конструктор, позволяющий создавать строку произвольного размера;
конструктор, который создаёт строку и инициализирует её строкой, полученной от пользователя.
Класс должен содержать методы для ввода строк с клавиатуры и вывода строк на экран.

Совсем не могу представвить, что нужно делать с динамическими строками, как их объявлять в классе и работать с ними в конструкторе.
Единственная моя идея - это использовать malloc.
Пожалуйста, помогите разобраться.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 22:43     строки: работа с динамической памятью, перегруженные конструкторы
Посмотрите здесь:

C++ Работа с динамической памятью!
C++ программа с динамической памятью
C++ Работа с динамической памятью через указатели.
C++ Разобраться в принципе работы задачч. (Работа с динамической памятью через указатели. )
C++ Работа с динамической памятью через указатели. Загадочная ошибка.
Работа с динамической памятью через указатели. Загадочная ошибка. C++
Работа с динамической памятью. Ошибка в функции getline через посимвольный ввод C++
C++ Работа с динамической памятью

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
18.02.2013, 06:36     строки: работа с динамической памятью, перегруженные конструкторы #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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
 
class String
{
    unsigned int string_size;
    char* ptr;
public:
    String(){
        string_size = 80;
        ptr = new char[string_size];   // можно, конечно, использовать malloc
        ptr[0] = '\0';
    }
    String(int _size) {
        string_size = _size;
        ptr = new char[string_size];
        ptr[0] = '\0';
    }
    String(char* str) {
        string_size = 1;
        char* curstr = str;
        while (*curstr) {
            ++curstr;
            ++string_size;
        }
        ptr = new char[string_size];
        strncpy(ptr, str, string_size);
        ptr[string_size - 1] = '\0';
    }
    ~String(){
        string_size = 0;
        delete[] ptr;
    }
    friend std::ostream& operator << (std::ostream& os, const String& s);
    friend std::istream& operator >> (std::istream& in, String& s);
};
 
std::ostream& operator << (std::ostream& os, const String& s){
    os << s.ptr;
    return os;
}
 
std::istream& operator >> (std::istream& in, String& s){
    in >> s.ptr;
    return in;
}
 
 
 
int main()
{
    String s1, s4;
    String s2(20);
    String s3("Summer");
 
    std::cout << s3 << std::endl;
    std::cin >> s1;
    std::cout << s1 << std::endl;
    std::cout << s2 << std::endl;   // пустые строки, т.к. мы их не инициализировали
    std::cout << s4 << std::endl;
    system("pause");
    return 0;
}
Yandex
Объявления
18.02.2013, 06:36     строки: работа с динамической памятью, перегруженные конструкторы
Ответ Создать тему
Опции темы

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