Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 2
Регистрация: 23.05.2018
Сообщений: 11

Базовый класс Array и производные классы SortArray и XorArray

10.01.2019, 16:02. Показов 960. Ответов 0

Студворк — интернет-сервис помощи студентам
Помогите закончить программу пожалуйста. Необходимо создать базовый класс Array с виртуальными методами сложения и поэлементной обработки foreach() и производные от него классы Sort Array и XorArray. В SortArray операцию сложения реализовать как пересечение множеств, а поэлементную обработку извлечением корня каждого элемента массива. В XorArray сложение как исключающее или, а поэлементная обработка - сортировка массива. Я уже задал foreach() для первого класса (для второго не уверен, что верно). Не могу реализовать сложение, компилятор жалуется ещё в базовом классе. Ниже привиден код. Ошибка в SortArray::add - error: cannot allocate an object of abstract type 'Array' (не единственная)

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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#ifndef ARRAY
#define ARRAY
#include <iostream>
#include <iomanip>
#include <cstring>
#include <stdexcept>
 
using namespace std;
 
class Array{
public:
    double *arr;
    size_t sz;
 
public:
    Array () {
        arr = nullptr;
        sz = 0;
    }
    Array (size_t _sz){
        arr = new double[_sz];
        sz = _sz;
    }
    Array (double *a, size_t s){
        sz = s;
        arr = new double [s];
        for (size_t i = 0; i < sz; i++)
            arr[i] = a[i];
    }
    Array (const Array& other){
        sz = other.sz;
        arr = new double [sz];
        for (size_t i = 0; i < sz; i++)
            arr[i] = other.arr[i];
    }
    virtual ~Array (){
        delete [] arr;
    }
    void print() const {
        for(size_t i = 0; i < sz; ++i)
            cout << setw(6) << setiosflags(ios::showpoint) << setprecision(3) << arr[i];
        cout << endl;
    }
    double& operator[](size_t i) {
        if(i < 0 || i >= sz) throw out_of_range("Exit for size");
        else return arr[i];
    }
    size_t resize(size_t newsz) {
        if(newsz < sz)
            return sz;
        else {
            double *newarr = new double [newsz];
            for(size_t i = 0; i < sz; ++i)
                newarr[i] = arr[i];
            for(size_t i = sz; i < newsz; ++i)
                newarr[i] = 0;
            sz = newsz;
            delete [] arr;
            arr = newarr;
            return newsz;
        }
    }
   size_t size() const {
        return sz;
   }
 
    virtual Array& add (Array&) const = 0;
    virtual void foreach () = 0;
};
#endif // ARRAY
 
 
 
//SortArray методы
    SortArray& add (const Array&other){
        Array *temp;
        for(size_t i = 0; i < sz; i++)
            temp [i] = arr[i];
        for(size_t j = sz; j < other.sz; j++)
            temp [j] = other.arr[j - sz];
        return temp;
    }
 
    void foreach(){
    double temp;
        for (size_t i = 0; i < sz - 1; i++) {
         for (size_t j = 0; j < sz - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
 }
 
// XorArray методы
 
    XorArray& add (const Array &x){
        for (size_t i = 0; i < arr; i++)
            x.arr[i] = arr[i] ^ arr[i];
    }
 
    void foreach(){
        double *newarr = new double[sz];
        for (size_t i = 0; i < sz; i++) {
            newarr[i] = arr[i];
        }
        for (size_t i = 0; i < sz; i++) {
            arr[i] = sqrt(newarr[i]);
        }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.01.2019, 16:02
Ответы с готовыми решениями:

Создать иерархию классов: абстрактный базовый класс Array и производные классы AndArray и OnArray
Помогите написать программу, спасибо!!! Создать абстрактный базовый класс Array с виртуальными методами сложения и поэлементной...

Создать абстрактный базовый класс Array с виртуальными методами и производные классы SortArray, ХогАггау
Здравствуйте! Необходимо написать программу на с#. Условие задачи такое: Создать абстрактный базовый класс Array с виртуальными...

Класс: Создать базовый класс «работник фирмы» и производные классы «стажер», «руководящий сотрудник», «директор»...
Всем привет, помогите пожалуйста, я уже всю голову сломал, не знаю как решить ее... Создать базовый класс «работник фирмы» и...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.01.2019, 16:02
Помогаю со студенческими работами здесь

Создать базовый абстрактный класс Фигура и производные классы
Создать базовый абстрактный класс - фигура, и производные класс - круг, прямоугольник, трапеция. Определить абстрактные функции площадь,...

Определить базовый класс и на его основе производные классы
Разработать консольную программу на языке С++, в которой необходимо определить базовый класс и на его основе производные классы. Кроме...

Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент»
Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент». Создать массив объектов базового класса и заполнить этот...

Базовый класс Фигура, производные классы Окружность, Прямоугольник, Ромб
Подскажите верно ли сделана эта программа #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; class Basic { ...

Создать базовый класс «Учащийся» и производные классы «Школьник» и «Студент»
При выполнении данной работы необходимо определить базовый класс и производные от него классы. Предусмотреть передачу аргументов...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru