Форум программистов, компьютерный форум CyberForum.ru

Добавить дружественную функцию - C++

Восстановить пароль Регистрация
 
denpanov
2 / 2 / 0
Регистрация: 19.10.2012
Сообщений: 77
11.06.2014, 16:44     Добавить дружественную функцию #1
Создать класс машина, имеющий марку (указатель на строку) , число цилиндров, мощность. Определить конструкторы, деструктор и функцию печати. Создать public- производный класс – грузовики, имеющий грузоподъемность кузова. Определить конструкторы по умолчанию и с разным числом параметров, деструкторы, функцию печати. Определить функции переназначения марки и грузоподъемности. Программа должна содержать меню.

Не могу добавить дружественную функцию.

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
#include <iostream>
#include <conio.h>
using namespace std;
class automob
{public:
int chislo;
char marka[20];
int mosh;
automob();
virtual void show();
};
class gruz: public automob
{
public:
int n;
gruz();
void show();
};
 
automob::automob()
{
 cout<<endl<<"Chislo:";
 cin>>chislo;
 cout<<endl<<"mosh:";
 cin>>mosh;
 cout<<endl<<"marka:";
 cin>>marka;
}
 
 void automob::show()
{
    cout<<endl<<"chislo:"<<chislo;
    cout<<endl<<"mosh:"<<mosh;
    cout<<endl<<"marka:"<<marka<<endl;
}
 
gruz::gruz()
{ cout<<endl<<"Gruzopodemnost:";
 cin>>n;
 
}
 
void gruz::show()
{
    cout<<endl<<"chislo:"<<chislo;
    cout<<endl<<"mosh:"<<mosh;
    cout<<endl<<"marka:"<<marka;
    cout<<endl<<"Gruzopodemnost:"<<n<<endl;
}
 
int main()
{
automob *sp;
gruz *sp1;
int n;
int t=1;
while (t!=0)
{//system("cls");
cout<<"***###   ###***";
cout<<endl<<"1. Vvod auto";
cout<<endl<<"2. Vivod auto";
cout<<endl<<"3. Vvod gruz";
cout<<endl<<"4. Vivod gruz";
cout<<endl<<"0. vihod"<<endl;
cin>>t;
 
    switch(t)
    {
        case 1:
            {   system("cls");
                cout<<endl<<"n=";
                cin>>n;
                sp=new automob[n];
            }
        break;
        case 2:
            {
                for(int i=0;i<n;i++)
                sp[i].show();
                cout<<endl;
            }
        break;
        case 3:
            {
                sp1=new gruz[n];
                cout<<endl;
            }
        break;
        case 4:
            {
                for(int i=0;i<n;i++)
                sp1[i].show();
                cout<<endl;
            }
        break;
    }}
 
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 16:44     Добавить дружественную функцию
Посмотрите здесь:

Как организовать дружественную функцию для печати массива C++
C++ передать вектор объектов в дружественную функцию
Перегрузка операций (Создать класс вещественных чисел (double); определить оператор +, как функцию-элемент и – как дружественную функцию) C++
C++ Добавить дружественную функцию в программу
C++ Можно ли объявить дружественную функцию как шаблон?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
11.06.2014, 16:45     Добавить дружественную функцию #2
Цитата Сообщение от denpanov Посмотреть сообщение
Не могу добавить дружественную функцию
какую дружественную функцию?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
11.06.2014, 16:48     Добавить дружественную функцию #3
Цитата Сообщение от denpanov Посмотреть сообщение
Не могу добавить дружественную функцию.
Какую? К какому классу дружественную?
denpanov
2 / 2 / 0
Регистрация: 19.10.2012
Сообщений: 77
11.06.2014, 16:53  [ТС]     Добавить дружественную функцию #4
alsav22, aLarman не имеет значения, какую и к какому классу.
Нужно просто показать, что она есть и работает.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
11.06.2014, 16:56     Добавить дружественную функцию #5
C++
1
2
3
4
5
6
7
8
friend ostream& operator<<(ostream & os, const gruz& r)
    {
        os<<endl<<"chislo:"<<chislo;
    os<<endl<<"mosh:"<<mosh;
    os<<endl<<"marka:"<<marka;
    os<<endl<<"Gruzopodemnost:"<<n<<endl;
        return os;
    }
юзать так в мейне
C++
1
 std::cout<<(*sp1)<<std::endl;
denpanov
2 / 2 / 0
Регистрация: 19.10.2012
Сообщений: 77
11.06.2014, 17:03  [ТС]     Добавить дружественную функцию #6
aLarman, можете объяснить os что такое?
и можете добавить в программу? не понял куда встраивать.
aLarman
636 / 557 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
11.06.2014, 17:16     Добавить дружественную функцию #7
поток) почитайте на просторах инета про ostream, хотя я думаю Вам это вряд ли пригодится)

Добавлено через 17 секунд

Не по теме:

Цитата Сообщение от denpanov Посмотреть сообщение
и можете добавить в программу? не понял куда встраивать.
нет) додумайте сами

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 17:21     Добавить дружественную функцию
Еще ссылки по теме:

C++ Сделать дружественную функцию для критерия Кохрена
C++ Передача строки в дружественную функцию
C++ Определить унарный оператор ++ как дружественную функцию

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

Или воспользуйтесь поиском по форуму:
denpanov
2 / 2 / 0
Регистрация: 19.10.2012
Сообщений: 77
11.06.2014, 17:21  [ТС]     Добавить дружественную функцию #8
aLarman, просто мы ostream не проходили.
я не догоняю вообще эту дружественную.
В теории у нас только на уровне Class_1 friend Class_2 ))
Yandex
Объявления
11.06.2014, 17:21     Добавить дружественную функцию
Ответ Создать тему
Опции темы

Текущее время: 18:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru