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

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

Войти
Регистрация
Восстановить пароль
 
Glamorous
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 7
#1

Создать класс MyString - C++

05.06.2013, 18:32. Просмотров 517. Ответов 4
Метки нет (Все метки)

Ребята спайсайте Сессия до экзамена осталось 12 часов!!!
Отблагодарю материально если все правильно решите, в долгу не останусь!
Сразу говорю ничего уточнить и пояснить не могу ничего не знаю по с++ вообще
Сама задача:

Создать класс MyString, содержащий элемент данных указатель на массив типа char - текстовую строку. Конструктор класса с параметром (максимальной длиной строки) должен выделять память под размещение строки заданной длины. Переопределить для класса операцию [ i ] как операцию индексации, которая должна обеспечивать доступ к i - му символу как на чтение, так и на запись; при этом должна осуществляться проверка выхода за пределы существующей строки. Создайте также тестирующую оболочку, позволяющую продемонстрировать работу класса. Можно разработать как в текстовом, так и в визуальном режиме.

Заранее огромное спасибо!!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2013, 18:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс MyString (C++):

Создать класс MyString - C++
Создать класс MyString, содержащий элемент данных указатель на массив типа char - текстовую строку. Конструктор класса с параметром...

Класс MyString через статические члены класса - C++
Всем доброго времени суток. Возникла необходимость решить задачу, хочу обратиться к знающим людям за подходящим к данной задаче...

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ... - C++
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями - C++
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Создать класс - данные - абстрактный базовый класс. Создать производные классы - C++
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...

MyString в vector - C++
Приветствую, Столкнулся со следующей проблемой. Написал свой класс MyString. Далее создаю vector с типом MyString. Делаю это...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
05.06.2013, 19:24 #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
#include <iostream>
 
class MyString
{
    char* str;
    size_t length;
public:
    MyString(const int& maxLength): length(maxLength), str(new char[maxLength])  {}
    char& operator [] (const size_t& index) const
    {
        if (index >= length)
            std::cerr << "\nOut of range\n"; 
        return this->str[index];
    }
    ~MyString()
    {
        delete []str;
    }
};
int main()
{
    MyString mystring(50);
    for (int i=0; i<30; ++i)
        std::cout << (mystring[i] = char(i+100)) << ' '; // заполняем - выводим
    mystring[71] = 'q'; // проверка на выход из диапазона
    std::cout << std::endl;
}
1
Glamorous
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 7
06.06.2013, 11:36  [ТС] #3
Спасибо огромное...Пожалуйста напишите пояснение к каждой строчке если вас это не затруднит какая операция что выполняет... вобщем нужно пояснение к каждой строке чтобы я мог объяснить преподавателю.. и в лс скиньте реквизиты куда перевести вам денежку за помощь))
Если пояснение напишит ктото другой отблагодарю также финансово)
0
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
06.06.2013, 11:50 #4
Как то так:
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
#include <iostream>
 
class MyString
{
    char* str;          //Указатель на буфер
    size_t length;      //Кол-во элементов
public:
    //Конструктор, принимающий длину строки.
    //В списке инициализации идициализируется length переданным значением 
    //и инициализируется указатель str адресом выделенной памяти
    MyString(const int& maxLength): length(maxLength), str(new char[maxLength])  {}
    char& operator [] (const size_t& index) const
    {
        if (index >= length)//Если индекс выходит за пределы буфера, тогда
            std::cerr << "\nOut of range\n"; //Выводим в стандартный не буферизированный поток сообщение
        return this->str[index];//Возвращаем ссылку на элемент
    }
    ~MyString()
    {
        delete []str;//Освобождаем память.
    }
};
int main()
{
    MyString mystring(50);//Создаем объект типа MyString
    for (int i=0; i<30; ++i)
        std::cout << (mystring[i] = char(i+100)) << ' '; // заполняем - выводим
    mystring[71] = 'q'; // проверка на выход из диапазона
    std::cout << std::endl;
}
Цитата Сообщение от Glamorous Посмотреть сообщение
Если пояснение напишит ктото другой отблагодарю также финансово)
В этом разделе помощь бесплатная
Платные услуги оказываются в другом разделе.
2
Glamorous
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 7
06.06.2013, 17:16  [ТС] #5
огромное спасибо))))

Добавлено через 5 часов 22 минуты
странно текс выдает ошибку вроде как... чтото не то?? я не могу проверить у меня вообще нет с++ =(
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 17:16
Привет! Вот еще темы с ответами:

Перегрузка операторов Mystring - C++
Добрый день. Работаю над собственным классом Mystring, в котором надо перегрузить операторы. class MyString{ private: char *str; ...

Создать класс Элемент списка (Node), а затем класс Список (List) - C++
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...

Создать класс Point и производный класс ColoredPoint (цветная точка) - C++
Создайте класс Point (точка на плоскости), характеризующийся двумя координатами. Создайте производный класс ColoredPoint (цветная точка), в...

Создать Класс Coins (монеты). Класс сохраняет массив из 3 монет ... - C++
Помогите написать програмку, где: Нужно создать Класс Coins (монеты). Класс сохраняет массив из 3 монет и общее количество лицевых сторон...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.06.2013, 17:16
Ответ Создать тему
Опции темы

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