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

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

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

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

03.09.2013, 17:54. Просмотров 458. Ответов 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++ Взаимодействие объектов разных классов
Композиция классов и объектов данных C++
C++ Массив объектов разных производных классов
C++ Создание коллекции объектов разных классов
C++ Создание классов и объектов
C++ Создание классов и объектов
Объединения объектов классов C++
C++ Комопзиция объектов/иерархия классов
Создание классов и объектов C++
Композиция классов и объектов C++
Генератор объектов C++
C++ Напишите отличия классов от объектов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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, спасибо большое!
Yandex
Объявления
03.09.2013, 19:19     Генератор объектов классов
Ответ Создать тему
Опции темы

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