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

Двухстороннее взаимодействие классов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить сумму заштрихованных элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread1566739.html
добрый вечер, помогите вычислить сумму заштрихованных элементов матрицы. заранее спасибо.
C++ Аргументы потоку pthread Добрый день, нужен совет как лучше написать запуск потоков структура для передачи в поток struct thread_arg { CTCPServer* pServer; int sock_desc; http://www.cyberforum.ru/cpp-beginners/thread1566723.html
с++ rectangle C++
Всем привет,падает первый же ассерт в rectangle_test.cpp,не могу понять почему,преподаватель сказал что намутил с инициализацией,но вроде в самих тестах она происходит(или я че то путаю).Как решить проблему хотя бы для первого ассерта?Надеюсь на помощь) rectangle.hpp #ifndef _RECTANGLE_HPP_ #define _RECTANGLE_HPP_ ...
C++ Ошибка afx.h
Вот такая: 4 IntelliSense: #error directive: Building MFC application with /MD (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD d:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\afx.h 24 2 maestro-m Почему? Добавлено через 14 минут Решено: Configuration Properties / General / Use of MFC / Use MFC in a Shared DLL
C++ К элементам, стоящим на главной диагонали матрицы, добавить максимальные элементы строк http://www.cyberforum.ru/cpp-beginners/thread1566668.html
Если все максимальные элементы столбцов превышают произведение минимальных элемен-тов строк, то к элементам стоящим на главной диагонали добавить соответствующие максимальные элементы строк. В противном случае матрицу оставить без изменения.
C++ В строках матрицы сначала расположить все элементы, меньшие 5, а потом все остальные Преобразовать элементы строк матрицы таким образом, чтобы сначала располагались все элементы, меньшие 5, а потом все остальные. подробнее

Показать сообщение отдельно
RAFA91
Заблокирован
02.11.2015, 15:28  [ТС]     Двухстороннее взаимодействие классов
Добрый день !
Решил для двухстороннего взаимодействия классов B and C воспользоваться полиморфизмом.
Цель - иметь возможность в одном классе просматривать данные другого класса.
Можно ли применять такой подход взаимодействия классов ?

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
#include <iostream>
using namespace std;
 
class A
{
    protected:
    int x,y,z;
    public:
    A(int a) : x(a),y(a*a),z(a*a*a) {cout<<"Конструктор А "<<this<<endl;}
    virtual ~A() {cout<<"Деструктор А "<<this<<endl;}
    virtual void func_1(A *) const =0 ;
    virtual void func_2() const =0 ;
    int get_x() const {return x;}
    int get_y() const {return y;}
    int get_z() const {return z;}
};
 
class B : public A
{
    public:
    B(int a) : A(a) {cout<<"Конструктор B "<<this<<endl;}
    ~B() {cout<<"Деструктор B "<<this<<endl;}
    void func_1(A *b) const
    {
        cout<<"Данные класса C: ";
        cout<<"x = "<<b->get_x();
        cout<<" y = "<<b->get_y();
        cout<<" z = "<<b->get_z()<<endl;
        b->func_2();
    }
    void func_2() const{cout<<"Класс B x = "<<x
    <<" y = "<<y<<" z = "<<z<<endl;}
};
 
class C : public A
{
    public:
    C(int a) : A(a) {cout<<"Конструктор C "<<this<<endl;}
    ~C() {cout<<"Деструктор C "<<this<<endl;}
    void func_1(A *c) const
    {
        cout<<"Данные класса B: ";
        cout<<"x = "<<c->get_x();
        cout<<" y = "<<c->get_y();
        cout<<" z = "<<c->get_z()<<endl;
        c->func_2();
    }
    void func_2() const{cout<<"Класс C x = "<<x
    <<" y = "<<y<<" z = "<<z<<endl;}
};
 
int main() 
{
    A *c = new C(56);
    A *b = new B(45);
    c->func_1(b);
    b->func_1(c);
    cout<<"***************************"<<endl;
 
 
    return 0;
}
http://ideone.com/zkCdR9
 
Текущее время: 20:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru