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

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

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

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

09.10.2009, 19:26. Просмотров 1116. Ответов 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;
       }
         };
//----------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2009, 19:26     Конструкторы
Посмотрите здесь:

Конструкторы и деструктор - C++
В общем, пишу прогу на классы. Уже написал (суть в том чтобы вывести значения диагоналей, периметра и площади ромба), но не заметил что...

Конструкторы и классы - C++
Определить класс список элементов. В определение класса включить два конструктора: для определения списка по его размеру и путем...

Классы, конструкторы - C++
В понедельник последний день сдачи лабы. На выбор сделать одну из них: №1 Делать через классы и конструкторы. С использованием...

Конструкторы. синтаксис - C++
Добрый вечер! Не совсем понятно, как описываются конструкторы: что в круглых скобках, что в фигурных, когда нужно двоеточие. Например: ...

Указатели и конструкторы - C++
Всем доброго времени суток!!! Выполняя упражнение Лафоре 10 главы №1 написав и проверив всё столкнулся с такой проблемой. Проще...

Конструкторы по умолчанию. - C++
Здравствуйте, возник вопрос. Только что минут 10 въезжал что у меня не так. Суть вот в чем. Есть некий класс, в моем случае например digit....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,410
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;
};
crashc
23 / 23 / 4
Регистрация: 26.07.2009
Сообщений: 414
10.10.2009, 19:04  [ТС]     Конструкторы #3
kravam а вот слушай реализовать выбор действия здесь можно только путем case или еще есть способы? может можно это реализовать как то через класс?
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,410
11.10.2009, 03:36     Конструкторы #4
При чём тут case?
Я его не использовал.
Кстати.
ISergey
Maniac
Эксперт С++
1372 / 883 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 1
11.10.2009, 03:47     Конструкторы #5
Цитата Сообщение от kravam Посмотреть сообщение
При чём тут case?
Я его не использовал.
у вас спросили -
Цитата Сообщение от crashc Посмотреть сообщение
выбор действия здесь можно только путем case или еще есть способы? может можно это реализовать как то через класс
Кстати ваш код ужасен (и автора изначально тоже)..
Том Ардер
Модератор
Эксперт по математике/физике
3721 / 2334 / 290
Регистрация: 15.06.2009
Сообщений: 4,144
11.10.2009, 12:51     Конструкторы #6
Герберт Шилдт, "C для профессиональных программистов", гл.2 http://wmate.ru/ebooks/book7.html
Книга хоть и древняя (ещё для ДОС), но всё-таки полезная. Не все велосипеды нужно изобретать самому. Но пробовать надо.
P.S. Учиться, учиться, и ещё раз учиться! (С)Не моё
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;
}
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,410
11.10.2009, 18:02     Конструкторы #8
Я не знаю, до деструкторов не дошёл ещё.
crashc
23 / 23 / 4
Регистрация: 26.07.2009
Сообщений: 414
11.10.2009, 18:38  [ТС]     Конструкторы #9
жаль
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,908
11.10.2009, 19:19     Конструкторы #10
но теперь загвоздка в деструкторе! где его лучше использовать в этой программе
Нигде.
P.S. Почему ваш класс находится внутри функции main? Где default внутри switch? И самое интереное: почему у вас умножение называется делением(хоть и написано с ошибкой), а деление удалением? )))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2009, 20:25     Конструкторы
Еще ссылки по теме:

Классы и конструкторы - C++
#include &lt;string.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; class automobile//создаём класс automobile ...

Конструкторы классов - C++
Помогите разобраться с классами, не пойму как мне сделать правильно конструкторы класса Application,выдвёт ошибки в его конструкторе,...

наследование. конструкторы - C++
#include &lt;iostream&gt; using namespace std; #include &lt;locale&gt; #include &lt;time.h&gt; #include &lt;windows.h&gt; class TArray { ...

Объявить конструкторы - C++
Доброго дня. Написал класс с полями и методами. Сделал тестовую программку - все работает. Добавил в класс несколько конструкторов (в .h...


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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1691 / 878 / 44
Регистрация: 04.06.2008
Сообщений: 5,410
11.10.2009, 20:25     Конструкторы #11
Цитата Сообщение от rangerx Посмотреть сообщение
Почему ваш класс находится внутри функции main?
А почему бы ему там не находиться?
Автор хочет, значит, чтобы его класс был виден только в пределах этой функции.
Yandex
Объявления
11.10.2009, 20:25     Конструкторы
Ответ Создать тему
Опции темы

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