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

Перегруженный оператор ввода

02.11.2012, 16:24. Показов 2183. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, как правильно создать перегруженный оператор ввода для инициализации данных об обьекте
к примеру
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Planet{
public: string name;
protected: double diameter;
private: int sputniks, number, distance;
public:
    Planet();
    Planet(string n,double dia,int sput,int numb,int dist);
 
};
 
 
Planet::Planet(string n,double dia,int sput,int numb,int dist)
         {
            name=n;
            diameter=dia;
            sputniks=sput;
            number=numb;
            distance=dist;
         }
а в мейне с помощью перегруженных >> нужно задать данные обьекту
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2012, 16:24
Ответы с готовыми решениями:

Перегруженный оператор ввода
Почему ошибка при попытке вывести результат сложения двух матриц? #include <iostream> using namespace std; class...

Перегруженный оператор ввода/вывода для struct
Доброго времени суток, форумчане! У меня возник вопрос с перегрузкой оператора ввода на с++ написал свою структуру, зафрендил для нее...

Перегруженный оператор +
Товарищи программисты не могу понять вот этот кусок кода: dist4 = dist1 + dist2 + dist3; у нас есть конструктор с двумя параметрами, но...

3
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
02.11.2012, 16:39
Вот так можно, я там ещё конструктор доделал.
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
#include <iostream>
#include <string>
using namespace std;
 
 
class Planet{
public: string name;
protected: double diameter;
private: int sputniks, number, distance;
public:
    Planet() { sputniks = 0; number = 0; distance = 0; }
    Planet(string n,double dia,int sput,int numb,int dist); 
    friend istream& operator >> (istream&, Planet&);
 
};
 
istream& operator >> (istream& in, Planet& ob) 
{  
    in >> ob.sputniks >> ob.distance >> ob.distance; 
    return in;
 
}
 
Planet::Planet(string n,double dia,int sput,int numb,int dist)
         {
            name=n;
            diameter=dia;
            sputniks=sput;
            number=numb;
            distance=dist;
         }
 
int main() 
{ 
    Planet pl; 
    cin >> pl; 
}
1
 Аватар для igorrr37
2891 / 2038 / 992
Регистрация: 21.12.2010
Сообщений: 3,790
Записей в блоге: 9
02.11.2012, 17:03
с исключениями
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
#include <iostream>
#include <stdexcept>
#include <fstream>
#include <string>
using namespace std;
 
class Planet
{
public:
    Planet(){};
    Planet(string const&, double, int, int, int);
    friend std::istream& operator>>(std::istream&, Planet&);
    string name;
protected:
    double diameter;
private:
    int sputnics, number, distance;
};
 
Planet::Planet(string const& n, double dia, int sput, int numb, int dist)
{
    name=n;
    diameter=dia;
    sputnics=sput;
    number=numb;
    distance=dist;
}
 
std::istream& operator>>(std::istream& ist, Planet& p)
{
    Planet tmp;
    ist >> tmp.name >> tmp.diameter >> tmp.sputnics >> tmp.number >> tmp.distance;
    if(!ist)
        throw std::runtime_error("operator>> failed");
    else
        p = tmp;
    return ist;
}
 
int main()
{
    std::ifstream ifs("in.txt");
    if(ifs.is_open())
    {
        Planet p, p1;
        try
        {
            ifs >> p >> p1;
        }
        catch(std::exception const& e)
        {
            std::cerr << "Exception: " << e.what() << std::endl;
        }
        std::cout << p.name << ' ' << p1.name << std::endl;
        ifs.close();
    }
    else
        std::cerr << "Unable to open file" << std::endl;
    return 0;
}
1
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 22
02.11.2012, 17:08  [ТС]
Большое спасибо,тема закрыта
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.11.2012, 17:08
Помогаю со студенческими работами здесь

Перегруженный оператор +
Здравствуйте. Нужно разобраться как работает перегруз операторов. Я взял оператор + и пытаюсь сделать плюсик, который складывает массивы: ...

перегруженный оператор <<
подскажите как перегрузить оператор &lt;&lt; для класса как описать само перегружение friend ostream&amp; operator &lt;&lt; (ostream &amp;c,...

Перегруженный оператор
MathClass = Harry; Раньше я думал, что перегрузка - это предоставление оператору функций, которых, он изначально не имел. Что...

Не вызывается перегруженный оператор
#include&lt;iostream&gt; using namespace std; struct dates { int num; int count; dates *back; dates *forward; }; class...

Перегруженный оператор вывода
Есть базовый класс Точка и его наследник Круг. Как в Круге использовать operator&lt;&lt; для Точки? Надо вывести координаты центра круга ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru