0 / 0 / 1
Регистрация: 27.07.2013
Сообщений: 34
1

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

03.09.2013, 17:54. Показов 2048. Ответов 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) После создания всех объектов удалить их отдельным методом
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2013, 17:54
Ответы с готовыми решениями:

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов и приложение,...

Преобразования объектов классов в объекты других классов
Задача типа обмен валют. Нужно конвертировать старый фунт стерлинг(фунт, шиллинг и пенсы) в доллары...

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

Связь объектов классов
Добрый день господа. Нужна помощь гуру:) Возник вопрос реализации связи объектов классов, насколько...

2
В астрале
Эксперт С++
8035 / 4792 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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
1
0 / 0 / 1
Регистрация: 27.07.2013
Сообщений: 34
03.09.2013, 19:19  [ТС] 3
ForEveR, спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2013, 19:19

Композиция классов и объектов
Написать программу, в которой создаются и уничтожаются объекты, определенного пользователем типа....

Массив объектов (классов)
Есть вектор из классов, у вектора должны быть методы/функции для вывода,сортировки и тд. Как это...

Создание классов и объектов
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; class gai {...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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