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

Реализовать перегрузку оператора ввода в классе-наследнике

30.08.2016, 14:28. Показов 748. Ответов 1

Студворк — интернет-сервис помощи студентам
вопрос, наверное, глупый. Есть класс, содержащий массив (размер задется пользователем) и наследник (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
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
#pragma once
#include <iostream>
#include <cstdlib>
 
class Base
{
private:
    int* Arr;
    int N;
public:
    Base() {
        Arr = NULL;
        N = 0;
    }
 
    Base(int arr[], int n) {
        N = n;
        Arr = new int[N];
        for (int i(0); i < N; i++)
            Arr[i] = arr[i];
 
    }
 
    friend std::ostream& operator<<(std::ostream& os, Base& b) {
 
        for (int i(0); i < b.N; i++)
            os << b.Arr[i] << " ";
        return os;
    }
    friend std::istream& operator>>(std::istream& is, Base& b) {
        std::cout << "Размер: ";
        while (1) {
            if (is >> b.N)
                break;
            std::cin.clear();
            while (std::cin.get() != '\n');
            std::cin.get();
        }
 
        b.Arr = new int[b.N];
        //заполнение массива
        for (int i(0); i < b.N; i++)
            is >> b.Arr[i];
 
        return is;
    }
 
    ~Base() {
        delete[] Arr;
    }
};
 
class Sub : public Base
{
public:
    Sub() : Base() {}
    Sub(int ar[]) : Base(ar, 4) {}
    friend std::istream& operator >> (std::istream& is, Sub& b) {
 
        int ar[4];
 
        //заполнение массива
        for (int i(0); i < 4; i++)
            is >> ar[i];
 
        Sub::Sub(ar);
 
        return is;
    }
 
 
 
};
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.08.2016, 14:28
Ответы с готовыми решениями:

не получается осуществить перегрузку оператора ввода-вывода
хочу передать перечисление (enum class Colors) в функцию to_string по ссылке, но при этом при возвращении в консоль возникает ошибка...

Реализовать перегрузку оператора индексации
Здравствуйте! Очень нужна помощь, помогите сделать перегрузку оператора индексации. #include &lt;iostream&gt; #include...

Реализовать перегрузку метода: - статического; - экземплярного (реализовать в классе)
Метод замены в массиве заданного элемента на указанное число, удаления заданного элемента.

1
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
30.08.2016, 14:34
DannyConnor, оператор >> это обычная функция класса. Вы хотите вызвать конструктор для уже созданного объекта. На лицо ошибка ХУ. А почему бы вам просто не завести метод инициализации данными - вы бы его в конструкторе/операторе присвоения/операторе>> бы использовали....
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.08.2016, 14:34
Помогаю со студенческими работами здесь

Реализовать перегрузку оператора сложения пользовательского класса Ellipse для сложения двух полуосей эллипса
Нужно дополнить прогу конструктором\деструктором и перегруженой операцией, чтоб &quot;+&quot; делал сложение двух полуосей элипса: ...

Объявить в классе-наследнике указатель, указывающий туда же, куда указывает указатель в классе-родителе
Здравствуйте. Имеется базовый класс MainWindow: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include &quot;globaltime.h&quot; class...

Перегрузка оператора в наследнике
Доброго времени суток. Интересует вопрос на счет перегрузки оператора в классе. Обьяснить трудно - попытаюсь на примере. class Base { ...

Перегрузка метода в классе-наследнике
...доброго времени суток, уважаемые форумчане!... ...Возник вопрос: не могу сообразить как перегрузить метод Testing в этой библиотеке: ...

Перегрузка операций в классе наследнике
всем привет товарищи программисты, есть вопрос. делал как то перегрузку операций, но делал ее просто в классе, а теперь хочу сделать в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru