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

Взаимодействие объектов разных классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Boolean http://www.cyberforum.ru/cpp-beginners/thread241854.html
Не подскажите почему булеану выделяется 1 байт(8 бит) ведь достаточно только одного бита. И как тогда работать побитово?
C++ Разработать программу, реализующую многопочность средствами среды Win32 помогите пожалуйста разобраться с задачей. "Задание Разработать программу, реализующую многопочность средствами среды Win32. Программа должна обеспечивать: 1. Отображение списка запущенных потоков. 2. Создание нового потока по запросу пользователя. 3. Завершение заданного потока по запросу пользователя. 4. Завершение работы с корректным завершением всех потоков. Каждый поток работает... http://www.cyberforum.ru/cpp-beginners/thread241845.html
Класс в модуле C++
как записать класс в модуль?(ну чтобы его из модуля вызывать) например такой #include <iostream> class Myclass { private: int elem1,elem2,elem3; public: Myclass(int x,int y,int z)
Как правильно написать в С++ C++
Как правильно написать в С++ N=arctg(sin^2*x+tg^2*y) y=sin^2*(a-b)^3 ^- степень
C++ Использование вспомогательных функций http://www.cyberforum.ru/cpp-beginners/thread241781.html
Помогите найти ошибку в коде, заранее спасибо. Найти периметр треугольника, заданного координатами своих вершин. (Определить функцию для расчета длины отрезка по координатам его вершин). // laba9 zad2.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <math.h>
C++ Вычисление матричных выражений через функции Вычисление матричных выражений с помощью функций A*(B-C). написал код, компилятор ругается чёт, взгляните в чём ощибка? #include "stdafx.h" #include <iostream> #include <time.h> #include <stdlib.h> using namespace std; int Matrica (int a , int b , int c, int n) { int d; подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3042 / 1687 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
13.02.2011, 07:58     Взаимодействие объектов разных классов
А я что-то не обратил внимания, что классы одинаковые. Тогда логичнее так сделать:
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
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
class T_actor
{
    typedef std::string  T_name;
    //-----------------------------------------------------------------------------------
    T_name  name_;
    int     health_;
    int     damage_;
public:
    //-----------------------------------------------------------------------------------
    T_actor
        (
            T_name  name,
            int     health = 0, 
            int     damage = 0
        ) 
        : name_    (name),
          health_  (health), 
          damage_  (damage)
    {}
    //-----------------------------------------------------------------------------------
    void attack(T_actor&  destination)
    {
        destination.health_ -= damage_;
    } 
    //-----------------------------------------------------------------------------------
    void  print()
    {
        std::cout << "Actor "
                  << name_
                  << ":"
                  << std::endl
                  << '\t'
                  << "health: "
                  << health_
                  << std::endl
                  << '\t'
                  << "damage: "
                  << damage_
                  << std::endl
                  << std::endl;
    }
};
///////////////////////////////////////////////////////////////////////////////////////// 
int main()
{
    std::locale::global(std::locale(""));
    T_actor A("A", 100, 50);
    T_actor B("B", 100, 30);
 
    std::cout << "Состояния участников перед схваткой:"
              << std::endl;
    A.print();
    B.print();
 
    A.attack(B);
    B.attack(A);
 
    std::cout << "Состояния участников после схватки:"
              << std::endl;
    A.print();
    B.print();
}
Что касается дружбы, то это самая сильная зависимость, какая только может существовать между классами, а основной принцип ООП - минимизация зависимостей, поэтому дружбы нужно всегда избегать, и применять только тогда, когда без нее невозможно обойтись.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru