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

Как добавить дружественные функции?

12.11.2014, 13:59. Показов 593. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <iostream> 
#include <iomanip> 
 
using namespace std;
 
class Time 
{
private: 
         int hour; 
         int minute; 
         int second;
          
public: 
        Time( int = 0, int = 0, int = 0 ); 
 
        const Time Time::operator+(const Time &other) ; 
        void setTime( int, int, int ); 
        void setHour( int ); 
        void setMinute( int ); 
        void setSecond( int ); 
 
        int getHour() const; 
        int getMinute() const;
        int getSecond() const; 
 
        void Time::get( ); 
        void Time::show();  
}; 
 
   Time::Time( int hour, int minute, int second ) 
{ 
   setTime( hour, minute, second ); 
} 
 
   void Time::setTime( int hour, int minute, int second ) 
{ 
   setHour( hour ); 
   setMinute( minute ); 
   setSecond( second ); 
} 
 
void Time::get( ) 
 { 
 int hour, minute, second; 
 cout << "Enter hour : " ; 
 cin >> hour; 
 cout << endl ; 
 cout << "Enter minute : " ; 
 cin >> minute; 
 cout << endl ; 
 cout << "Enter second : " ; 
 cin >> second; 
 cout << endl ; 
 setTime(hour,minute, second); 
 } 
 
 void Time::setHour( int h ) 
 { 
 hour = h; 
 } 
 
 void Time::setMinute( int m ) 
 { 
 minute = m; 
 } 
 
 void Time::setSecond( int s ) 
 { 
 second = s; 
 } 
 
 int Time::getHour ( ) const 
 { 
 return hour; 
 } 
 
 int Time::getMinute () const 
 { 
 return minute; 
 } 
 
 int Time::getSecond () const 
 { 
 return second; 
 } 
 
 void Time::show() 
 { 
 cout << setfill( '0' ) << setw( 2 ) << hour << ":" << setw( 2 ) 
 << minute << ":" << setw( 2 ) << second << endl; 
 } 
 
 
 const Time Time::operator+(const Time &other) { 
 int hour = (*this).getHour() + other.getHour(); 
 int min = (*this).getMinute() + other.getMinute(); 
 int sec = (*this).getSecond()+ other.getSecond(); 
 if ( sec > 60 ) 
 { 
 sec = sec - 60; 
 min = min + 1; 
 } 
 if ( min > 60 ) 
 { 
 min = min - 60; 
 hour = hour + 1; 
 } 
 if ( hour > 24 ) 
 { 
 hour = hour - 24; 
 } 
 return Time( hour, min, sec); 
 } 
 
 int main() 
 { 
 Time time1, time2, time3; 
 
 time1.get(); 
 time2.get(); 
 time3 = time1 + time2; 
 time3.show(); 
 system("pause");
 return 0; 
 }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2014, 13:59
Ответы с готовыми решениями:

Перегрузить >> и << как дружественные функции
Доброго времени суток :) Задача - перегрузить &gt;&gt; и &lt;&lt;, как дружественные функции Вот код: #include&lt;iostream&gt; using...

Дружественные функции. Наследование. Перегрузка функции
Здравствуйте, у меня проблема Не знаю куда Вставить имеющийся код(В какую строчку или строчки кода). Первый код это было 1 задание, 2-ой...

дружественные функции
Тема: дружественные функции Напишите программу обращения слова. Помогите решить на С++

2
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
12.11.2014, 14:32
Цитата Сообщение от lixod96 Посмотреть сообщение
(*this).getHour()
C++
1
this->getHour();
и т.п. Какие дружественные функции, для каких целей? И свой код желательно в теги \[CPP\]\[/CPP\] обрамить.

Добавлено через 4 минуты
Цитата Сообщение от lixod96 Посмотреть сообщение
const Time Time::operator+(const Time &other) ;
Внутри класса Time:: не нужно использовать, это раз. Зачем возвращать const. Тут видимо константный метод имелся в виду? Или константная ссылка?

Добавлено через 24 минуты
lixod96,
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
#include <iostream>
#include <cstdlib>
#include <iomanip> 
 
using namespace std;
 
class Time 
{
    private: 
        int hour; 
        int minute; 
        int second;
 
    public: 
        Time( int = 0, int = 0, int = 0 ); 
 
        friend Time operator+(const Time& t1, const Time& t2); 
        void setTime( int, int, int ); 
        void setHour( int ); 
        void setMinute( int ); 
        void setSecond( int ); 
 
        int getHour() const; 
        int getMinute() const;
        int getSecond() const; 
 
        void get( ); 
        void show() const; 
}; 
 
Time::Time( int h, int m, int s ): hour(h), minute(m), second(s){} 
 
 
void Time::setTime( int hour, int minute, int second ) 
{ 
    this->hour = hour;
    this->minute = minute;
    this->second = second;
} 
 
void Time::get( ) 
{ 
    cout << "Enter hour : " ; 
    (cin >> hour).get(); 
    cout << "Enter minute : " ; 
    (cin >> minute).get();
    cout << "Enter second : " ; 
    (cin >> second).get();
} 
 
void Time::setHour( int h ) 
{ 
    while (h > 23) h -= 24;
    hour = h; 
} 
 
void Time::setMinute( int m ) 
{ 
    while (m > 59) m -= 60;
    minute = m; 
} 
 
void Time::setSecond( int s ) 
{ 
    while (s > 59) s -= 60;
    second = s; 
} 
 
int Time::getHour ( ) const 
{ 
    return hour; 
} 
 
int Time::getMinute () const 
{ 
    return minute; 
} 
 
int Time::getSecond () const 
{ 
    return second; 
} 
 
void Time::show() const
{ 
    cout << setfill( '0' ) << setw( 2 ) << hour << ":" 
                           << setw( 2 ) << minute << ":"  
                           << setw( 2 ) << second << endl; 
} 
 
 
Time operator+(const Time& t1, const Time& t2)
{ 
    int hour = t1.hour + t2.hour; 
    int min = t1.minute + t2.minute; 
    int sec = t1.second + t2.second; 
    while ( sec > 59 ) 
    { 
        sec = sec - 60; 
        min = min + 1; 
    } 
    while ( min > 59 ) 
    { 
        min = min - 60; 
        hour = hour + 1; 
    } 
    while ( hour > 23 ) 
    { 
        hour = hour - 24; 
    } 
    return Time( hour, min, sec); 
} 
 
int main() 
{ 
    Time time1, time2, time3; 
 
    cout << "Enter first time:" << endl;
    time1.get();
    cout << endl;
    cout << "Enter second time:" << endl;
    time2.get(); 
    time3 = time1 + time2; 
    time3.show(); 
    system("pause");
    return 0; 
}
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
12.11.2014, 14:52
Вот пример с дружественной функцией show():
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
class Time 
{
private: 
         int hour; 
         int minute; 
         int second;
          
public: 
        Time( int = 0, int = 0, int = 0 ); 
 
        const Time Time::operator+(const Time &other) ; 
        void setTime( int, int, int ); 
        void setHour( int ); 
        void setMinute( int ); 
        void setSecond( int ); 
 
        int getHour() const; 
        int getMinute() const;
        int getSecond() const; 
 
        void get( ); 
        friend void show(Time& tm);  
};
void show(Time& tm)
{
cout << setfill( '0' ) << setw( 2 ) << tm.hour << ":" << setw( 2 ) 
 << tm.minute << ":" << setw( 2 ) << tm.second << endl; 
}
 int main() 
 { 
 Time time1, time2, time3; 
 
 time1.get(); 
 time2.get(); 
 time3 = time1 + time2; 
 show(time3); 
 system("pause");
 return 0; 
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2014, 14:52
Помогаю со студенческими работами здесь

Дружественные функции
Написал програмку по Лафоре. Однако на объявлении дружественной ф-и происходит ошибка компиляции. Может кто знает в чем может быть...

Дружественные функции
День добрый. class Distance { private: int fut; int inch; public: Distance():fut(0),inch(0){}; Distance(int f,int...

Дружественные функции
Добрый день. Подскажите как правильно запихнуть данные код в тело дружественной функции. Моё задание:&quot;Напишите программу,...

Дружественные функции
Всем привет,объясните пожалуйста,почему мой код не выводит информацию из private, даже если я указал как friend нужную функцию(наверное)....

дружественные функции
Всем привет!!! Есть код: #include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; enum...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru