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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
crashc
23 / 23 / 4
Регистрация: 26.07.2009
Сообщений: 414
#1

Конструкторы - C++

09.10.2009, 19:26. Просмотров 1124. Ответов 10
Метки нет (Все метки)

Спроектируйте класс – “калькулятор”, предназначенный для выполнения арифметических операций с двумя операндами и добавьте в разработанный вами класс-калькулятор конструктор, инициализирующий объект. Класс может разработан не верно но вот он
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
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <iostream>
//---------------------------------------------------------------------------
#pragma argsused
int main()
{class calculator{
       int oper1,oper2;
       char znak;
       int rez;
       public:
       calc(int op1, int op2, int r){
       oper1=op1;
       oper2=op2;
       znak=z;
       rez=r;
       }
 
       int get_plus(){
       return rez;
       }
 
       int get_minus(){
       return rez;
       }
 
       int get_devide(){
       return rez;
       }
 
       int get_delete(){
       return rez;
       }
         };
//----------------------------------------------------------------------
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2009, 19:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конструкторы (C++):

Конструкторы C++ - C++
Объясните, пожалуйста, своими словами, что являют собой конструкторы, для чего они нужны, в чем их преимущество перед аналогичными...

конструкторы - C++
Есть 2 проблемы: 1) Сказали сделать 2 конструктора: один по умолчанию, а другой-с параметрами. Какие должны быть параметры в моем...

Конструкторы - C++
Объясните на пальцах, для чего нужны конструкторы?

Конструкторы - C++
class A { public: A() : a(10) // инициализация a { b = 3; // присвоение b } int a, b; };

конструкторы - C++
Доброе время суток! Помогите разобраться с конструктором. Что это такое и с чем его едят. Так как сдала лабу преподавателю, ну вроде ж...

Конструкторы - C++
Пытаюсь разработайте класс представления окна на экране компьютера. В состав должны войти следующие конструкторы: -конструктор по...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,460
09.10.2009, 20:26 #2
Да не, нормально всё. Только функция-конструктор должнаиметоь то имя, что и класс.

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

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
#include <stdio.h>
int main() {
 class calculator {
  private:
   int oper1,oper2;
   char znak;
   int rez;
  public:
   calculator(int op1, int op2){
    oper1=op1;
    oper2=op2;
   }
   int get_plus(){
    return oper1 + oper2;
   }
 
   int get_minus(){
    return oper1 - oper2;
   }
 
   int get_devide(){
    return oper1 * oper2;
   }
 
   int get_delete(){
    return oper1/oper2;
   }
 };
 
 calculator obekt (24, 11);
 
 printf ("%d\n",obekt.get_plus ()); 
 printf ("%d\n",obekt.get_minus ()); 
 printf ("%d\n",obekt.get_devide ()); 
 printf ("%d\n",obekt.get_delete ()); 
 
 getchar ();
 
 return 0;
};
1
crashc
23 / 23 / 4
Регистрация: 26.07.2009
Сообщений: 414
10.10.2009, 19:04  [ТС] #3
kravam а вот слушай реализовать выбор действия здесь можно только путем case или еще есть способы? может можно это реализовать как то через класс?
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,460
11.10.2009, 03:36 #4
При чём тут case?
Я его не использовал.
Кстати.
0
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
11.10.2009, 03:47 #5
Цитата Сообщение от kravam Посмотреть сообщение
При чём тут case?
Я его не использовал.
у вас спросили -
Цитата Сообщение от crashc Посмотреть сообщение
выбор действия здесь можно только путем case или еще есть способы? может можно это реализовать как то через класс
Кстати ваш код ужасен (и автора изначально тоже)..
1
Том Ардер
Модератор
Эксперт по математике/физике
3742 / 2355 / 293
Регистрация: 15.06.2009
Сообщений: 4,219
11.10.2009, 12:51 #6
Герберт Шилдт, "C для профессиональных программистов", гл.2 http://wmate.ru/ebooks/book7.html
Книга хоть и древняя (ещё для ДОС), но всё-таки полезная. Не все велосипеды нужно изобретать самому. Но пробовать надо.
P.S. Учиться, учиться, и ещё раз учиться! (С)Не моё
1
crashc
23 / 23 / 4
Регистрация: 26.07.2009
Сообщений: 414
11.10.2009, 17:37  [ТС] #7
Может быть код и в правду ужасен, но увы с чего-то надо начинать! Всё вроде работает kravam но теперь загвоздка в деструкторе! где его лучше использовать в этой программе
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
#include <vcl.h>
#pragma hdrstop
#include <iostream.h>
 
#pragma argsused
int main()
{
 int operanda1=0, operanda2=0;
 char dest;
 
class calculator{
       int oper1,oper2;
       char znak;
       int rez;
       public:
       calculator(int op1, int op2){
       oper1=op1;
       oper2=op2;
      }
 
 
       int get_plus(){
       return oper1+oper2;
       }
 
       int get_minus(){
       return oper1-oper2;
       }
 
       int get_devide(){
       return oper1*oper2;
       }
 
       int get_delete(){
       return oper1/oper2;
       }
         };
 
    cout<<"Input two chisla"<<endl;
    cin>>operanda1>>operanda2;
    cout<<"Input char"<<endl;
    cin>>dest;
    switch(dest){
 
      case'+':{
      calculator object(operanda1,operanda2);
      cout<<"Rezalt= "<<object.get_plus()<<endl<<endl;
      cout<<"Press for exit"<<endl;
      break;
      }
 
      case'-':{
      calculator object(operanda1,operanda2);
      cout<<"Rezalt= "<<object.get_minus()<<endl<<endl;
      cout<<"Press for exit"<<endl;
      break;
      }
 
      case'*':{
      calculator object(operanda1,operanda2);
      cout<<"Rezalt= "<<object.get_devide()<<endl<<endl;
      cout<<"Press for exit"<<endl;
      break;
      }
 
      case'/':{
      calculator object(operanda1,operanda2);
      cout<<"Rezalt= "<<object.get_delete()<<endl<<endl;
      cout<<"Press for exit"<<endl;
      break;
      }
    }
        getchar();
        getchar();
        return 0;
}
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,460
11.10.2009, 18:02 #8
Я не знаю, до деструкторов не дошёл ещё.
0
crashc
23 / 23 / 4
Регистрация: 26.07.2009
Сообщений: 414
11.10.2009, 18:38  [ТС] #9
жаль
0
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
11.10.2009, 19:19 #10
но теперь загвоздка в деструкторе! где его лучше использовать в этой программе
Нигде.
P.S. Почему ваш класс находится внутри функции main? Где default внутри switch? И самое интереное: почему у вас умножение называется делением(хоть и написано с ошибкой), а деление удалением? )))
0
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,460
11.10.2009, 20:25 #11
Цитата Сообщение от rangerx Посмотреть сообщение
Почему ваш класс находится внутри функции main?
А почему бы ему там не находиться?
Автор хочет, значит, чтобы его класс был виден только в пределах этой функции.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2009, 20:25
Привет! Вот еще темы с ответами:

Конструкторы - C++
#include&lt;iostream&gt; class A { public: A(int x) : _x(x) {} private: int _x; }; int main() ...

Конструкторы С++ - C++
Всем привет, помогите довести программу до ума :) Заранее благодарю откликнувшихся :) ...

Конструкторы - C++
Почему, если класс имеет конструктор с параметрами у него обязательно должен быть конструктор по умолчанию?

Конструкторы - C++
Есть фрагмент кода: #include &lt;iostream&gt; using namespace std; class Counter { public: Counter operator++(int);...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.10.2009, 20:25
Ответ Создать тему
Опции темы

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