С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Проблемы с понимаем перезагрузки операторов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Файлы на с++ http://www.cyberforum.ru/cpp-beginners/thread582582.html
Здравствуйте ! Начал осваивать файлы, но столкнулся с проблемой, при записи в файл, туда записываются символы типа : 4324423Њ®бўдлў 43242423423¬®бЄў* 543765ўдлўдл 4343Њ®бЄў* 43423©®Їв*...
C++ Необходимо внести небольшие поправки в программу, не могу найти ошибку Здравствуйте, уважаемые! Прошу помочь "допилить" программку до конца, ибо уже не знаю что делать.:cry: Прошу, пожалуйста ,дочитать задание. )) Возникла проблема с программой суть которой... http://www.cyberforum.ru/cpp-beginners/thread582570.html
Открытие файла через ехешник C++
Здравствуйте. Такой вопрос есть. Нужно разработать приложение, которое отображает параметры (package: name и launchable-activity: name ) из файла AndroidManifest.xml, который находится в файле...
C++ Заменить в тексте каждое вхождение...
Заменить в тексте каждое вхождение константы "1" словом "odin". Предполагается, что текст записан в файле input.txt. Результат выводится на экран. Задание выполнить в двух вариантах: со строками...
C++ Курсовая по C++ http://www.cyberforum.ru/cpp-beginners/thread582491.html
Получить спортивный мультфильм: а)о метании диска; б)о беге с барьерами; в)о прышках в длину; г)о подтягивании на перекладине; д)о поднятии штанги; любой из вариантов лучше на С++
C++ Даны натуральные числа А,В,С Даны натуральные числа А,В,С, которые обозначают число, месяц и год. Получить тройку чисел, соответствующих следующему дню. Заранее огромнейшее спасибо, походу думаю разбирусь Добавлено через 5... подробнее

Показать сообщение отдельно
No10
30 / 28 / 2
Регистрация: 03.06.2010
Сообщений: 465

Проблемы с понимаем перезагрузки операторов - C++

22.05.2012, 15:55. Просмотров 1146. Ответов 5
Метки (Все метки)

ни как не могу понять синтаксис перезагрузки операций. Просто жесть. Вот пример кодаЖ

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
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <math.h>
 
using namespace std;
 
char bufRus[256];
char* Rus(const char* text) {
      CharToOem(text, bufRus);
      return bufRus;
      }
 
class PhoneNumber{
        friend ostream &operator<< (ostream &, const PhoneNumber &);
        friend istream &operator>> (istream &, PhoneNumber &);
    private:
        char areaCode[4];
        char exchange[4];
        char line[5];
};
 
ostream &operator<< (ostream &output, const PhoneNumber &num)
{
    output << "(" << num.areaCode << ") " << num.exchange << "-" << num.line;
    return output;
}
 
istream &operator>> (istream &input, PhoneNumber &num)
{
    input.ignore();
    input.getline(num.areaCode, 4);
    input.ignore(2);
    input.getline(num.exchange, 4);
    input.ignore();
    input.getline(num.line, 5);
 
    return input;
}
 
int main()
{
    PhoneNumber phone;
    cout << Rus("Введите номер телефона в виде (123) 456-7890:") << endl;
    cin >> phone;
    cout << Rus("Был введён номер телефона ") << phone << endl;
    system("pause");
    return 0;
}
Почему мы не пишем тип возвращаемых данных в обьявлении дружественной функции:
friend ostream &operator<< (ostream &, const PhoneNumber &);
Почему мы не пишем void, ведь она ничего не возвращает.
friend void ostream &operator<< (ostream &, const PhoneNumber &);
А вот это из разряда самого не понятного доя меня:
friend ostream &operator<< (ostream &, const PhoneNumber &);
Где родился тип ostream? зачем мы получаем на него ссылку.... Я предпологаю что это ссылка на функцию friend ostream &operator<<, но я очень плохо соображаю в ссылках на функцию и что это даёт... Почему когда я использую оператор << для обычного текста(cout << Rus("Введите номер телефона в виде (123) 456-7890:") ) у меня не срабатывает функция friend ostream &operator<<? Она вроде и не нужна там, но почему? Очень всё запутано, кто может пожалуйста обьясните, буду ооочень благодарен!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.