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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kaskera
0 / 0 / 0
Регистрация: 27.07.2013
Сообщений: 34
#1

Генератор объектов классов - C++

03.09.2013, 17:54. Просмотров 493. Ответов 2
Метки нет (Все метки)

Как написать такой генератор?

Есть класс Base в котором есть ЧИСТАЯ виртуальная функция Show () и поле UINT num

C++
1
2
3
4
5
6
class Base
{
  UINT num;
  public:
  virtual void Show () = 0;
};
И имеем 3 наследуемые классы A, B, C
Написать генератор, который будет:
1) создавать объекты классов с такой вероятностью: 60% - А, 30% - B, 10% - С
2) Вызывать методы Show () созданного объекта
3) После создания всех объектов удалить их отдельным методом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2013, 17:54     Генератор объектов классов
Посмотрите здесь:

Генератор объектов - C++
Я пишу консольную игру, и планирую сделать её с пароякой режимов. Например: 1) Режим прохождения - игрок по очереди сражается с каждым...

Композиция классов и объектов - C++
Помогите, пожалуйста, разобраться с самим заданием. -В первой части предлагается использовать композицию по принципу «матрёшки», когда...

Создание классов и объектов - C++
1. Объявить класс по приведенному ниже заданию в соответствии с номером варианта и определить для него конструктор по умолчанию,...

Создание классов и объектов - C++
Написать программу создания класса. File: Имя файла, Размер, Дата создания, Количество обращений. Определить возможно ли записать файл на...

Объединения объектов классов - C++
Доброй ночи, форумчане. Столкнулся с проблемой объединения объектов разных классов. Ранее с объединениями не сталкивался, но сейчас...

Комопзиция объектов/иерархия классов - C++
в общем нигде не могу найти внятного объяснения в виде кода, все очень поверхностно везде написано.Может кто знает место где есть хороший...

Композиция классов и объектов данных - C++
Номиналы украинских гривен могут иметь значение 1, 2, 5, 10, 20, 50, 100, 500, 1000, 5000. Копейки представить в виде 0.01 (1 копейка),...

Напишите отличия классов от объектов - C++
может кто простым языком рассказать про отличие между классами и объектами

Разработка с использованием простейших классов и объектов - C++
.Розробиты метод-член класса для определения минимального и максимального элементов одномерного динамического массива и их порядковых ...

Разработка с использованием простейших классов и объектов - C++ - C++
Разработать функцию определения А3 для заданного элемента а и подпрограмму, которая использует эту функцию для преобразования каждого ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
03.09.2013, 19:11     Генератор объектов классов #2
Kaskera,
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
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
 
class Base
{
public:
   virtual ~Base() {}
   virtual void show() const = 0;
};
 
class A : public Base
{
public:
   void show() const { std::cout << "A" << std::endl; }
};
 
class B : public Base
{
public:
   void show() const { std::cout << "B" << std::endl; }
};
 
class C : public Base
{
public:
   void show() const { std::cout << "C" << std::endl; }
};
 
class RandomFactory
{
public:
   RandomFactory()
   {
       srand(time(0));
   }
   ~RandomFactory()
   {
       for (std::vector<Base*>::const_iterator pos = pointers.begin();
       pos != pointers.end(); ++pos)
       {
           delete *pos;
       }
   }
   Base* generate()
   {
       int value = 1 + (rand() % 10);
       Base* ptr =
       value >= 1 && value < 7 ?
       static_cast<Base*>(new A()) : value >= 7 && value < 10 ?
       static_cast<Base*>(new B()) : static_cast<Base*>(new C());
       ptr->show();
       pointers.push_back(ptr);
   }
private:
   std::vector<Base*> pointers;
};
 
int main()
{
    RandomFactory factory;
    for (int i = 0; i < 10; ++i)
    {
        factory.generate();
    }
}
http://ideone.com/RqtFS8
Kaskera
0 / 0 / 0
Регистрация: 27.07.2013
Сообщений: 34
03.09.2013, 19:19  [ТС]     Генератор объектов классов #3
ForEveR, спасибо большое!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru