Форум программистов, компьютерный форум 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
Заблокирован
06.11.2015, 15:30  [ТС]     Двухстороннее взаимодействие классов
Добрый день !
Для взаимодействия классов решил воспользоваться указателем на функцию в одном из-классе что-бы не опускать реализацию функции func() класса А ниже класса B. А то ведь по хорошему вся реализация методов должна лежать в отдельном файле.
вообщем вот что вышло. есть ли еще более красивый подход ?

______________________________________________

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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
class B;
 
typedef int(B::*Rafa)()const;
 
class A
{
    int x;
    B *b;
    Rafa k;
public:
A(int _x,Rafa _k) : x(_x), k(_k) {cout<<"constructor А "<<this<<endl;}
~A() {cout<<"destructor А"<<this<<endl;}
int get() const {return x;}
void set(B *_b) {b = _b;}
void func(){cout<<"data B: x = "<<(b->*k)()<<endl;} 
};
 
class B
{
    int x;
    A *a;
public:
B(int _x) : x(_x) {cout<<"constructor B "<<this<<endl;}
~B() {cout<<"destructor B"<<this<<endl;}
int get() const {return x;}
void set(A *_a) {a = _a;}
void func() {cout<<"data A: x = "<<a->get()<<endl;}
};
 
 
 
 
int main() 
{
    
    A *a = new A(12,&B::get);
    B *b = new B(165);
    a->set(b);
    b->set(a);
    cout<<"*******************"<<endl;
    a->func();
    b->func();
    return 0;
}
 
Текущее время: 19:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru