3 / 0 / 0
Регистрация: 01.02.2015
Сообщений: 7
1

Классы. Работа с объектами типа массив

13.05.2015, 20:03. Показов 444. Ответов 2
Метки нет (Все метки)

Не нашел подобной темы на форуме, да и вообще в интернете

Создать объекты для работы с классами согласно заданию (см. ниже), используя наследование, абстрактные классы, виртуальные функции. Работу с производными объектами осуществлять через указатель типа базового класса.

Задание:
Работа с объектами типа массив: одномерный массив символов, массив строчек.
Для данных объектов, необходимо использовать виртуальные функции для сортировки, а также виртуальные деструкторы для освобождения памяти.
a. Необходимо ввести N символов , N>= 3 и определить частоту повторения этих символов у ранее созданных объектах.
b. Отсортировать данные в объектах не содержащие введенных символов (для объектов типа массив строчек отсортировать строчки по первым трем буквам).
c. Работу необходимо обеспечить в динамической памяти.

Классы:
Кликните здесь для просмотра всего текста

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
class Array
{
protected:
    int Size;
    int CurrentIndex;
public:
    Array(int);
//  virtual void Recurrence() = 0;
//  virtual void Sort() = 0;
    virtual ~Array();
};
 
class CharArray : public Array
{
    char* arr;
public:
    CharArray(int);
    void AddChar(char);
    char operator[](int);
    virtual ~CharArray();
};
 
class StringArray : public Array
{
    string* arr;
public:
    StringArray(int);
    void AddString(string);
    string operator[](int);
    virtual ~StringArray();
};


Методы:
Кликните здесь для просмотра всего текста
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
63
64
65
66
67
68
69
70
71
72
#include "Array.h"
#include <iostream>
#include <conio.h>
#include <string.h>
 
using namespace std;
 
 
Array::Array(int size)
{
    Size = size;
    CurrentIndex = 0;
}
 
 
Array::~Array()
{
}
 
CharArray::CharArray(int size):Array(size)
{
    arr = new char[Size];
}
 
CharArray::~CharArray()
{
    delete [] arr;
}
 
void CharArray::AddChar(char input)
{
    arr[CurrentIndex] = input;
    CurrentIndex++;
}
 
char CharArray::operator[](int index)
{
    if (index < 0 || index>(Size - 1))
    { 
        cout << "Wrong index!";
        _getch();
        abort();
    }
    else return arr[index];
}
 
StringArray::StringArray(int size) :Array(size)
{
    arr = new string[Size];
}
 
StringArray::~StringArray()
{
    delete[] arr;
}
 
void StringArray::AddString(string input)
{
    arr[CurrentIndex] = input;
    CurrentIndex++;
}
 
string StringArray::operator[](int index)
{
    if (index < 0 || index>(Size - 1))
    {
        cout << "Wrong index!";
        _getch();
        abort();
    }
    else return arr[index];
}


Массив char вроде нормально работает. А вот со sring уже проблемы..
Буду признателен за любую помощь.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2015, 20:03
Ответы с готовыми решениями:

Работа с объектами типа string
Здравия желаю!:) Возник вопрос по строкам. При таком коде#include&lt;iostream&gt;...

Задача (разъяснение) в алгоритм (программа, используя базовый и производный классы, создавала массив объектов типа производного класса)
Задача на наследование классов, базовый класс - &quot;люди&quot;, производный - &quot;студенты&quot;...как я понял, а...

Объединение двух связных списков с объектами одного типа
Здравствуйте. При изучении связных списков, написал шаблон для связного списка, с функциями...

Работа с памятью: можно ли в массив объектов с полем типа "Родитель", вписать объекты с полем типа "Потомок"
Здравствуйте. Предположим, что у нас есть массив из структур в которых находиться класс Item и...

2
55 / 56 / 34
Регистрация: 29.12.2012
Сообщений: 478
13.05.2015, 20:35 2
Много сложный слов

Добавлено через 13 минут
Сама идея непонятна main бы еше...
Ну вроде ляпов нет но указатель смушает во обоих случаях он одинаково назван...

Добавлено через 30 секунд
char* arr; и string* arr;
0
3 / 0 / 0
Регистрация: 01.02.2015
Сообщений: 7
13.05.2015, 21:01  [ТС] 3
Черный мечник, Что именно непонятно?
main-а пока что и нет))
Идея в том, что надо создать базовый класс Array, производные классы CharArray(каждый объект которого будет массивом символов) и StringArray( каждый объект которого будет массивом строчек). Остальное, уже как доп. задание.

Указатель исправил, но ошибки не исчезли(
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2015, 21:01
Помогаю со студенческими работами здесь

Создать вектор, состоящий из 10 элементов типа myString и заполнить его объектами с произвольными строками
Есть класс myString. Нужно создать вектор, состоящий из 10 элементов типа myString и заполнить его...

Работа с объектами в С++
С текстового файла считывается информация о студентах (фамилия, когда и на какой срок выдали книгу...

Работа с объектами
Здравствуйте, делаю курсовую по работе с датами, их вычитанием и сложением. Вообще в начале у...

Работа с объектами классов
Всем здраствуйте. Помогите если вам не так сложно :) Вот сейчас я поясню, то что не могу сделать:...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru