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

Дружественные функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Копирование строк из одного массива в другой http://www.cyberforum.ru/cpp-beginners/thread231260.html
Здравствуйте, друзья) Пишу: class CopyString { private: static const int Max = 20; char StrFirst; char StrSecond;
C++ исправите,пожалуйста!! помогите,нужно написать прогу,чтоб каждый отрицательный элемент последовательности заменить на его квадрат #include<iostream> #include<conio.h> #include<vector> #include<algorithm>... http://www.cyberforum.ru/cpp-beginners/thread231248.html
C++ C++;Keyloger
есть функция GetAsyncKeyState(i) но она всего лишь проверяет была ли последней нажата клавиша с кодом i есть ли функция перехватывающая нажатие клавиши. т.е. что-то на подобии getch p.s. с...
Элементарная прога. Не компилиться. Где напортачил? C++
Здрасьте, господа в джинсах и потёртых свитрах :) В общем задали в универе написать программу для решения уравнения. В C++ я не силён, можно сказать знаю на уровне юзера:(. в общем, прошу шарящих...
C++ Знаки перед элементами массива http://www.cyberforum.ru/cpp-beginners/thread231203.html
Вот код.Нужно чтобы сравнивались не сами элементы массива а их знаки. #include <iostream> #include <stdlib.h> #include <conio.h> #include <math.h> using namespace std; main(){ int const...
C++ работа с файлами данных В задаче у меня стоит пункт считать элементы файла в массив ... как это сделать? подробнее

Показать сообщение отдельно
niXman
Эксперт C++
3137 / 1449 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
19.01.2011, 21:02
Цитата Сообщение от Anastasiya_1692 Посмотреть сообщение
friend void engineer::SetNum(machine *, mechanic *);
* * * * friend void mechanic::SetZp(machine *,char *);
смысл этого вообще не понятен.
добавьте в machine метод SetNum(), а в mechanic метод int GetZp().
тогда ваша проблема решится так:
C++
1
2
3
void engineer::SetNum(machine *n, mechanic *m){
        n->SetNum(m->GetZp());
}
но все равно не понял смысла вашего кода. все можно решить много проще.

Добавлено через 17 минут
Anastasiya_1692, или у Вас задание на дружественные классы?

Добавлено через 1 минуту
в названии: "Дружественные функции"
пора в отпуск

Добавлено через 18 минут
вот ваша задача:
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
#include <iostream>
#include <string>
 
struct machine;
struct mechanic;
 
enum state { ok, bad };
 
/***************************************************************************/
 
struct engineer {
   engineer(const std::string& name)
      :name(name)
   {}
 
   void set_machine_num(machine* m, int n);
   void set_mechanic_zp(mechanic*, int zp);
private:
   std::string name;
};
 
/***************************************************************************/
 
struct mechanic {
   friend void engineer::set_mechanic_zp(mechanic*, int zp);
 
   mechanic(const std::string& name, int zp)
      :name(name),
      zp(zp)
   {}
 
   void set_machine_state(machine*, state);
 
   void show(std::ostream& os = std::cout) {
   }
 
private:
   std::string name;
   int zp;
};
 
/***************************************************************************/
 
struct machine {
   friend void engineer::set_machine_num(machine*, int);
   friend void mechanic::set_machine_state(machine*, state);
   
   machine(const std::string& name, state st, int num)
      :name(name),
      st(st),
      num(num)
   {}
   
   void show(std::ostream& os = std::cout) {
   }
 
private:
   std::string name;
   state st;
   int num;
};
 
/***************************************************************************/
 
void engineer::set_machine_num(machine* m, int n) {
   m->num = n;
}
 
void engineer::set_mechanic_zp(mechanic* m, int zp) {
   m->zp = zp;
}
 
void mechanic::set_machine_state(machine* m, state st) {
   m->st = st;
}
 
/***************************************************************************/
 
int main() {
   machine mach("My machine", bad, 1);
   mechanic mech("Ivanov", 45000);
   mech.set_machine_state(&mach, ok);
   engineer ingin("Petrov");
   ingin.set_machine_num(&mach, 2);
   ingin.set_mechanic_zp(&mech, 50000);
}
 
/***************************************************************************/
http://liveworkspace.org/code/b6cef4...787ff325f3a62e

только реализуйте методы show() если нужно.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru