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

Организация общения между классами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ C++ занесение структур находящихся в разных потоках, в общую очередь http://www.cyberforum.ru/cpp-beginners/thread826571.html
Весь код приводить не стал, надеюсь идея будет понятна. Я циклом создал потоки а теперь, нужно структуры (Clien), которые в этих потоках создались засунуть в очередь. Как это сделать??? а то у меня вообще никаких идей нет.. ...... void MThread( void* pParams ) { TDATA Client; }; ...... int main() { ..... priority_queue<TDATA, vector<TDATA>, TDATA_comparison> TDATA_queue;
C++ Классы, матрицы, перегрузка операторов, дружественные функции Гляньте пожалуйста, как получилось сделать задание, что неверно: Создать класс, в котором перегрузить операторы: & для перемножения двух матриц; + для сложения двух матриц. Память под матрицы отводить динамически. Предоставить конструктор копирования. Определить friend функции для операций ввода-вывода в поток. А вот что получилось: http://www.cyberforum.ru/cpp-beginners/thread826559.html
Считать строку в массив символов, который является членом класса C++
гетлайны, гетси, манипуляторы ws не работают (не могу заставить) #include <iostream> using namespace std; class employee { private: char name; long employee_id;
C++ Напечатать все слова отличные от последнего и удовлетворяющие следующему свойству:
Задан текст, между словами пробел, за последним словом точка. Напечатать все слова отличные от последнего и удовлетворяющие следующему свойству: буквы слова упорядочены по алфавиту. Использовать функции. (Плииз, программки нужны для Borland C++!)-но не обязательно! Спасибо заранее!!!!!___)))
C++ Список списков http://www.cyberforum.ru/cpp-beginners/thread826517.html
Как реализовать конструкцию списка списков? std::list <HWND> List; В этот список у меня попадают кнопки, по ним строится ломаная. Чтобы реализовать несколько ломаных мне нужен список в котором будут списки всех точек по которым строятся ломаные.
C++ Даны два массива А и В, получить массив C даны два массива А и В размером m*n, получить массив C=min(aij,bij) подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
03.04.2013, 09:47     Организация общения между классами
Цитата Сообщение от flybox Посмотреть сообщение
Задача следующая нужно, чтобы класс Graphics мог получать данные от Data.
Это очень размытая задача. Нужно конкретнее знать что за данные, когда получать... Может тут подойдет паттерн visitor или subscruber.

Добавлено через 5 минут
А с логгингом-то какая беда? Вот примитивный логгинг. Конечно, надо бы влепить фабрику или менеджер логгеров, но для простых решений сойдет просто указание потока в конкретном классе.
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
#include <iterator>
#include <iostream>
#include <istream>
#include <string>
#include <functional>
 
class Logger {
 public:
  Logger(std::ostream &outputStream, const std::string &facility)
    : outputStream(outputStream), facility(facility) {}
  void log(const std::string &message) {
    outputStream << facility << ": " << message << std::endl;
  }
  void error(const std::string &message) {
    log("ERROR: " + message);
  }
  void warning(const std::string &message) {
    log("WARNING: " + message);
  }
  void info(const std::string &message) {
    log("INFO: " + message);
  }
 private:
  std::ostream &outputStream;
  std::string facility;
};
 
 
class Core {
 public:
  Core() {
    log.info("created.");
  }
  virtual ~Core() {
    log.info("destroyed.");
  }
 private:
  static Logger log;
};
Logger Core::log(std::cout, "Core");
 
class Data {
 public:
  Data() {
    log.info("created.");
  }
  virtual ~Data() {
    log.info("destroyed.");
  }
 private:
  static Logger log;
};
Logger Data::log(std::cout, "Data");
 
int main(int argc, char *argv[]) {
  Core core;
  Data data;
  
  std::cin.get();
  return 0;
}
 
Текущее время: 18:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru