Форум программистов, компьютерный форум, киберфорум С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Проблема с удалением директории. На VS 2022 не работает, на VS 2019 работает https://www.cyberforum.ru/ cpp-beginners/ thread3024663.html
// FileManager //#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string.h> //содержит функции для работы со строками, как с char* #include <string> //содержит класс string #include <windows.h> #include <stdio.h> //стандартная библиотека ввода-вывода языка С, в том числе и работа с файлами #include <io.h> //библиотека для работы с файлами, в "плане доступа" #include...
C++ Вызвано исключение "Векторный индекс вне диапазона"
#include <iostream> #include <vector> #include <algorithm> #include <cmath> using namespace std; bool BinSearch(vector<int> vec, int x) { int beg = 0; int end = vec.size() - 1; int average_index = (beg + end) / 2;
C++ Написать диспетчер процессов https://www.cyberforum.ru/ cpp-beginners/ thread3024621.html
1. Написать диспетчер процессов, который бы постоянно держал в памяти указанное количество экземпляров заданного (командной строкой) приложения. В случае, если экземпляр приложения работает более заданного времени, то диспетчер должен принудительно завершить данный экземпляр приложения. Диспетчер должен выставлять себе приоритет выше, чем приоритет запускаемых приложений. Вывод приложений должен...
C++ Из элементов первой очереди, которых нет во второй, сформировать стек Даны две очереди целых чисел от 0 до 1000. Из элементов первой очереди, которых нет во второй, сформировать стек. выполнить задания, используя для представления очередей и стеков: а) массивы; б) динамические списки. Реализация массивом, кажется, получилась, но реализовать динамическим списком никак не получается #include <iostream> #include <time.h> #include <utility> #include... https://www.cyberforum.ru/ cpp-beginners/ thread3024610.html
Разбить массив на квадраты размером 3 на 3 элемента. В центре каждого квадрата поместить сумму его элементов C++
Заполнить двухмерный массив (9х9) случайными числами. Разделить его на квадраты 3х3 и в центре каждого квадрата поместить сумму его элементов. Результат вывести на экран. Диапазон случайных чисел 0 - 99. #include <iostream> #include <algorithm> using namespace std; int main() {
C++ Ошибка при попытке использовать objectbox Здравствуйте, я пытаюсь использовать objectbox. В CMakeList.txt у меня следующий код: include(FetchContent) FetchContent_Declare( objectbox GIT_REPOSITORY https://github.com/objectbox/objectbox-c.git GIT_TAG v0.15.2 ) FetchContent_MakeAvailable(objectbox) https://www.cyberforum.ru/ cpp-beginners/ thread3024602.html
C++ Составить линейный список из слов данного текста. Определить количество слов, содержащих заданную букву https://www.cyberforum.ru/ cpp-beginners/ thread3024597.html
Дан текст, состоящий из последовательности слов из латинских букв. Составить линейный список из слов данного текста. Определить количество слов, содержащих заданную букву, стоящую не на первом и не на последнем месте . Программа есть, просто нужно поправить 2 строчки. Не используя библиотеку algorithm и auto. #include <algorithm> #include <iostream> #include <list> #include <sstream> ...
Составить программу, для решения уравнения с заданной точностью C++
Составьте программу, которая решала бы следующее уравнение: x^3+3x^2-8x-3=0 Отрезок - Заданная точность - 10^-3
C++ Среди элементов одномерного массива найти все числа-палиндромы Приветствую, требуется помощь, нужно написать код на C++. Дан целочисленный одномерный массив из n элементов (1<=n<=100). Выполнить заданную операцию над массивом. Необходимо: Поиск/Среди элементов массива найти все числа-палиндромы. https://www.cyberforum.ru/ cpp-beginners/ thread3024558.html C++ Определить, попадает ли точка с координатами {x, y} в закрашенные области Здравствуйте, помогите пожалуйста! Язык C++ Определить, попадает ли точка с координатами {x,y}в закрашенные области. https://www.cyberforum.ru/ cpp-beginners/ thread3024550.html
C++ Сортировать массив обменной, быстрой, карманной сортировкой, сортировкой вставками
Сортировать массив обменной, быстрой, карманной сортировкой, сортировкой вставками . Оценить реальное время на сортировку каждым из методов на текущем компьютере. Количество элементов массива не менее 10000. ПОМОГИТЕ НА С++
C++ Вычислить и вывести значение функции, в зависимости от введенного n: https://www.cyberforum.ru/ cpp-beginners/ thread3024517.html
Вычислить и вывести значение функции, в зависимости от введенного n:
0 / 0 / 0
Регистрация: 07.04.2022
Сообщений: 19
0

Наследование c++ - C++ - Ответ 16472226

27.09.2022, 20:56. Показов 394. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста, как сделать так чтобы ob3.print() работал корректно и выводил поля предыдущих классов? (последние 7 строк вывода). Спасибо.

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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
#include <iostream>
#include <string>
#include <stdexcept>
using namespace std;
 
 
class COne {
protected:
 
    float L = 0;
    char* ps = nullptr;
 
public:
 
 
    //Конструктор по умолчанию
    COne() = default;
 
    //Конструктор с двумя агрументами
    COne(const char* s, float numL) {
        size_t cash = 0;
        L = numL;
        if (s != nullptr) {
            cash = strlen(s) + 1;
            ps = new char[cash];
            copy(s, s + cash, ps);
            ps[cash - 1] = '\0';
        }
    }
 
    //Констркутор копирования
    COne(const COne& arg) {
        L = arg.L;
        ps = arg.ps;
    }
 
    // Оператор копирования
    COne& operator=(const COne& arg) {
        COne temp(arg);
        swap(L, temp.L);
        swap(ps, temp.ps);
        return *this;
    }
 
    //Деструктор
    virtual ~COne() {
    };
 
    // Получение доступа к L
    const float& getValue() const {
        return L;
    }
 
    // Получение доступа к строке S
    const char* getString() const {
        return ps;
    }
 
    //Вывод на экран
    void print() {
        cout << "address[COne]: " << this << endl;
        if (ps == nullptr) {
            cout << "ps: " << "undefined" << endl << "L: " << L << endl;
        }
        else {
            cout << "ps: " << ps << endl << "L: " << L << endl;
        }
    }
 
    void printAddress(COne arg) {
        cout << endl << this << endl;
    }
 
    void setD(float _L) {
        L = _L;
    }
 
    friend class CTwo;
};
 
 
class CTwo {
protected:
 
    double d;
    COne* P; // отношение включения
 
public:
 
    // Конструктор по умолчанию
    explicit CTwo() {
        P = new COne();
        d = 0.0;
    }
 
    //Конструктор только для d
    explicit CTwo(double numD) {
        d = numD;
    }
 
    // Конструктор с аргментами
    explicit CTwo(const char* ps, double numD, float L) {
        P = new COne(ps, L);
        d = numD;
    }
 
    //Конструктор с аргументами (COne)
    explicit CTwo(COne* arg, double numD) {
        d = numD;
        P = arg;
    }
 
    //Вывод на экран
    virtual void print() const {
        if (P) {
            P->print();
            cout << "address[CTwo]: " << this << endl;
            cout << "d: " << d << endl;
        }
    }
 
    //Конструктор копирования
    CTwo(const CTwo& arg) {
        P = new COne(*arg.P);
        d = arg.d;
    }
 
    //Оператор копирования
    CTwo& operator=(const CTwo& arg) {
        CTwo temp(arg);
        swap(P, temp.P);
        swap(d, temp.d);
        return *this;
    }
 
    //Доступ к полям COne
    const COne* getCOne() const {
        return P;
    }
 
    //Доступ к d
    const double getD() const {
        return d;
    }
 
    friend class CThree;
};
 
 
class CThree : public CTwo {
protected:
 
    double *a = nullptr;
 
 public:
 
    //Конструктор с аргументами
     CThree(const char* s, double numD, float numL) : CTwo(move(s), numD, numL) {
         a = new double(numD);
     }
 
     //Конструктор по умолчанию
     CThree() : CTwo() {
     }
 
     //Конструктор только для a
     CThree(double numD) : CTwo(numD) {
         a = new double(numD);
     }
 
     //Конструктор c СTwo
     CThree(CTwo* arg) {
         a = new double(arg->d);
 
     }
 
 
 
     void print() const override {
         CTwo::print();
         if (a == nullptr) {
             cout << "address[CThree]: " << this << endl;
             cout << "a: " << "undefined" << endl;
         }
         else
         {
             cout << "address[CThree]: " << this << endl;
             cout << "a: " << *a << endl;
         }
     }
};
 
 
int main() {
    CThree ob1("string", 5.15, 7.7);
    ob1.print();
    cout << endl << endl << endl << endl;
 
    COne c1("qqqqq", 14.22);
    c1.print();
    cout << endl << endl;
 
    CTwo c2(&c1, 2.222);
    c2.print();
    cout << endl << endl;
 
    CThree c3(&c2);
    c3.print();
 
    /*
    // Создание объектов
    CTwo Obj1("string", 1.2, 2.3);
    CTwo Obj2("s t r i n g", 10.55, 15.60);
 
    //Вывод полей объектов на экран
    cout << "Objects:" << endl;
    Obj1.print();
    Obj2.print();
 
    //Конструктор копирования
    cout << endl << "Copy constructor Obj3(Obj1):" << endl;
    CTwo Obj3(Obj1);
    Obj1.print();
    Obj3.print();
 
    //Оператор копирования
    cout << endl << "Copy operator Obj2 = Obj1:" << endl;
    Obj2 = Obj1;
    Obj1.print();
    Obj2.print();
 
    //Метод getD
    cout << endl << "Method getD():" << endl;
    cout << Obj1.getD() << endl;
 
    //Метод getCOne
    cout << endl << "Method getCOne():" << endl;
    COne Obj4 = *(Obj1.getCOne());
    Obj4.print();
 
    //Метод getString
    cout << endl << endl << "Method getString():" << endl;
    cout << Obj4.getString() << endl;
 
    //Метод getValue
    cout << endl << "Method getValue():" << endl;
    cout << Obj4.getValue() << endl;
 
    //Конструктор CTwo принимающий COne в качестве аргумента
    cout << endl << "CTwo construcror with COne as argument:" << endl;
    COne ObjOne("qwerty", 12.34);
    CTwo ObjTwo(&ObjOne, 5.55);
    ObjTwo.print();
    */
 
    return 0;
}

Вывод:

address[COne]: 0000025A5AF30A70
ps: string
L: 7.7
address[CTwo]: 000000AB771AF858
d: 5.15
address[CThree]: 000000AB771AF858
a: 5.15




address[COne]: 000000AB771AF898
ps: qqqqq
L: 14.22


address[COne]: 000000AB771AF898
ps: qqqqq
L: 14.22
address[CTwo]: 000000AB771AF8C8
d: 2.222


address[COne]: 0000025A5AF30A10
ps: undefined
L: 0
address[CTwo]: 000000AB771AF8F8
d: 0
address[CThree]: 000000AB771AF8F8
a: 2.222

Спасибо!

Вернуться к обсуждению:
Наследование c++ C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2022, 20:56
Готовые ответы и решения:

Заменить наследование классов на наследование интерфейсов
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int...

Наследование
Наследование 1)Должна быть табличка 3*3 2)Разные типы наследования 3)программа в в которой будет...

наследование
Как наследовать классы с использованием виртуальных функций? Можете привести пример?

Наследование
Operator== всегда наследуется или есть пример когда нет ?

Наследование С++
Здравствуйте! У меня следующая проблема: при вызове перегруженного оператора или метода,...

2
27.09.2022, 20:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2022, 20:56
Помогаю со студенческими работами здесь

наследование
определить базовый класс ''точка''. Затем от него определить два произвольных класса...

наследование
Пытаюсь разобраться в наследовании Есть класс class File { public: struct comp { char...

наследование
class Person { public: virtual void display() final { } }; class...

Наследование
Создать класс CPoint – точка. На его основе создать классы CcoloredPoint и CLine. На основе ...

Наследование
Всем доброго времени суток! Начали изучать наследование, вроде все и понятно, но и с другой...

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