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

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

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

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
03.04.2013, 13:30
Можно реализовать как-то так.
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
#include <iterator>
#include <iostream>
#include <istream>
#include <string>
#include <functional>
#include <list>
 
// отрисовывает примитивы
class Surface {
 public:
  // тут находится то, с помощью чего mesh рисуется
  void drawLine(/* */) {} // например линии...
  void drawText(const std::string &message) {
    std::cout << message << std::endl;
  }
};
 
// отрисовывает модель на поверхности
class Mesh {
 public:
  void draw(Surface *surface) {
    surface->drawText("A mesh is drawn on surface.");
    //... ... ...
  }
};
 
// класс осуществляет доступ к набору Mesh'ей
// сохранять, извлекать, предоставлять доступ, короче
// нужно реализовать по-удобнее, конечно
class MeshSource {
 public:
  typedef std::list<Mesh*>::const_iterator ConstIterator;
  void addMesh(Mesh *mesh) {
    data.push_back(mesh);
  }
  ConstIterator begin() const { return data.begin(); }
  ConstIterator end() const { return data.end(); }
 private:
  std::list<Mesh*> data;
};
 
// умеет отрисовывать набор мешей
// в данном примере весь источник данных
class Graphics {
 public:
  Graphics(MeshSource *meshSource, Surface *surface) :
    meshSource(meshSource), surface(surface) {}
  void draw() {
    for (MeshSource::ConstIterator mesh = meshSource->begin();
      mesh != meshSource->end(); ++mesh) {
      (*mesh)->draw(surface);
    }
  }
 private:
  MeshSource *meshSource;
  Surface *surface;
};
 
int main(int argc, char *argv[]) {
  MeshSource meshes;
  meshes.addMesh(new Mesh());  
  meshes.addMesh(new Mesh());  
  meshes.addMesh(new Mesh());  
  meshes.addMesh(new Mesh());  
  
  Surface surface;
  Graphics graphics(&meshes, &surface);
  
  graphics.draw();
  
  std::cin.get();
  return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru