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

На основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей - C++

Восстановить пароль Регистрация
 
mmc11
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 6
05.03.2013, 16:48     На основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей #1
Я создал класс OPERATION, который является абстрактной операцией
над двумя числами типа int. Непосредственно сама операция выполняется в
процедуре execute, которая выводит результат на экран. Помогите на основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей. И на основе этого же класса OPERATION создать класс потомок OP_DIVIDER, который производит деление двух полей. Здесь необходимо предотвратить возможную ситуацию деления на ноль. Результат деления и сложения надо вывести на экран.

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
#include "stdafx.h"
 
class OPERATION //
{
    int x; //
    int y;
public://
    OPERATION(){}
    int execute()
    {
        printf ("x=%d y=%d\n",x,y);
        return 0; //
    }
    void set_OPERATION(int newx,int newy) //
    {
        x=newx;
        y=newy;
    }
 
};
int _tmain(int arqc, _TCHAR* arqv[]) //
{
    OPERATION operation;
    operation.set_OPERATION(10,15)
    operation.execute()
    return0; //
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2013, 16:48     На основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей
Посмотрите здесь:

C++ Класс-потомок
C++ Организовать на основе существующего класса произвольный класс
класс наследник на основе базового класса C++
На основе класса Vector разработать класс Matrix C++
Класс вектор на основе класса Complex. Найти угол между векторами C++
C++ Создать на базе класса с реализацией очереди клас потомок — кольцевая очередь
C++ Создать объект внутри класса, который может вызывать функцию этого класса
C++ Создать класс и класс-потомок с полями

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
05.03.2013, 18:14     На основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей #2
в унаследованных классах нет доступа к полям родительского класса объявленными в секции привт, используйте секцию протектед.

Добавлено через 2 минуты
"Я создал класс OPERATION, который является абстрактной операцией
над двумя числами типа int." - по сути это является определением функтора
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
06.03.2013, 05:25     На основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей #3
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
#include <iostream>
 
class OPERATION
{
   protected:
      int a, b;
 
   public:
      OPERATION(): a(0), b(0) { ; }
      OPERATION(int theA, int theB): a(theA), b(theB) { ; }
      virtual ~OPERATION() { ; }
 
      virtual void SetValues(int theA, int theB)
      {
         a = theA;
         b = theB;
      }
 
      virtual void Execute() = 0;
};
 
class OP_SUMMATOR: public OPERATION
{
   public:
      OP_SUMMATOR(): OPERATION() { ; }
      OP_SUMMATOR(int theA, int theB): OPERATION(theA, theB) { ; }
 
      virtual void Execute()
      {
         std::cout << a << "+" << b << "=" << a+b << std::endl;
      }
};
 
class OP_DIVIDER: public OPERATION
{
   public:
      OP_DIVIDER(): OPERATION() { ; }
      OP_DIVIDER(int theA, int theB): OPERATION(theA, theB) { ; }
 
      virtual void Execute()
      {
         if (b == 0)
         {
            std::cout << "b is zero" << std::endl;
         }
         else
         {
            std::cout << a << "/" << b << "=" << static_cast<float>(a)/b << std::endl;
         }
      }
};
 
int main()
{
   OPERATION* sum = new OP_SUMMATOR(2, 5);
   OPERATION* div = new OP_DIVIDER;
   div->SetValues(5, 2);
 
   sum->Execute();
   div->Execute();
 
   delete sum;
   delete div;
 
   return 0;
}
На основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей

Бинарник + исходник: program.7z
Yandex
Объявления
06.03.2013, 05:25     На основе созданного класса OPERATION, создать класс-потомок OP_SUMMATOR, который производит сложение двух полей
Ответ Создать тему
Опции темы

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