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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив с нулевыми значениями http://www.cyberforum.ru/cpp-beginners/thread252939.html
Присваивание нулевых начальных значений элементам массива.. Пожалуйста помогите исправить ошибки......не переделывая...это пример из книжки..... // нулевой массив.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <conio.h> #include <iomanip> #include<iostream> #include<stdio.h>
C++ Окружности помогите пож-та: надо составить три окружности разных цветов да еще чтобы они последовательно были соединены(как ауди )) Не вклинивайтесь в чужие темы с несвязанным с ними вопросом. Так же крайне желательно указывать среду программирования, ну и собственные наработки, если имеются. http://www.cyberforum.ru/cpp-beginners/thread252924.html
рекурсии... C++
задание: Во входном файле задано без ошибок логическое выражение следующего вида : <логическое выражение>::= true|falsе|<операция>(<операнды>) <операция>:: = not |and| or <операнды>:: = <операнды>|<операнд>,<операнды> <операнд>:: = <логическое выражение> У операций and и or может быть любое число операндов, у not – только один. Ввести это выражение и вычислить его значение. Например,...
C++ Дописать код программы
Вобщем есть код для нахождения количества попарно различных символов, входящих в состав введенного с клавиатуры слова, надо сделать так чтобы он работал со всей строкой, т.е. и со словами после пробела. //--------------------------------------------------------------------------- #include <stdio.h> #include <conio.h> #include <string.h> #pragma hdrstop ...
C++ Не знаю с чего начать:( http://www.cyberforum.ru/cpp-beginners/thread252914.html
Товарищи программисты подскажите с чегко начать писать данную программу: Справочное бюро вокзала. расписание движение поездов включает следующую информацию: НЦомер поезда, станцию назначения, время отправление, дни отправления, время прибытия на станцию назначения. при создании автомстизированного справочного бюро была добавленна информация о наличии мест каждой категории(СВ, купе, плацкарт,...
C++ итератор Привет. Не получается создать итератор. std::vector<std::list<size_t> > adjacentList; если пишу так std::vector<std::list<int> >::iterator it; it = adjacentList.begin(); то выскакивает ошибка no match for 'operator=' in 'it = ..... подробнее

Показать сообщение отдельно
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
06.03.2011, 15:48     Взаимодействие между объектами единой иерархии классов
Конечно, я все упрощаю.
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
74
75
76
77
78
79
80
81
82
83
#include <cstdio>
#include <vector>
 
// класс, на котором все рисуется
class Canvas {
 public:
  void DrawPoint(int x, int y, int color) {
    printf("Drawing point x = %d, y = %d, color = %d.\n",
           x, y, color);
  }
  void DrawLine(int x1, int y1, int x2, int y2, int color) {
    printf("Drawing line x1 = %d, y1 = %d, x2 = %d, y2 = %d, color = %d.\n",
           x1, y1, x2, y2, color);
  }
};
 
class Window;
 
class Drawable {
 public:
  virtual void Draw(Canvas &canvas) = 0;
};
 
class Point : public Drawable {
 public:
  Point(int x, int y, int color)
   : x_(x), y_(y), color_(color) {};
  int x() const { return x_; }
  int y() const { return y_; }
  int color() const { return y_; }
  void x(int value) { x_ = value; }
  void y(int value) { y_ = value; }
  void color(int value) { color_ = value; }
  virtual void Draw(Canvas &canvas) {
    canvas.DrawPoint(x_, y_, color_);
  }
 private:
  int x_;
  int y_;
  int color_;
};
 
class Line : public Drawable {
 public:
  Line(int x1, int y1, int x2, int y2, int color)
    : x1_(x1), y1_(y1), x2_(x2), y2_(y2), color_(color) {}
  virtual void Draw(Canvas &canvas) {
    canvas.DrawLine(x1_, y1_, x2_, y2_, color_);
  }
 private:
  int x1_;
  int y1_;
  int x2_;
  int y2_;
  int color_;
};
 
class Window {
 public:
  ~Window() {
    for (int i = 0; i < drawables_.size(); ++i)
      delete drawables_[i];
  }
  void Add(Drawable *drawable) {
    drawables_.push_back(drawable);
  }
  void Draw() {
    for (int i = 0; i < drawables_.size(); ++i)
      drawables_[i]->Draw(window_canvas_);
  }
 private:
  std::vector<Drawable*> drawables_;
  Canvas window_canvas_;
};
 
 
int main(int argc, char *argv[]) {
  Window a;
  a.Add(new Point(10, 10, 0xFACE8D));
  a.Add(new Line(0, 0, 5, 5, 0xFACE8D));
  a.Draw();
  return 0;
}
Добавлено через 2 минуты
Можно еще посмотреть на иерархию классов Delphi VCL.
 
Текущее время: 19:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru