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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
crashc
23 / 23 / 4
Регистрация: 26.07.2009
Сообщений: 414
09.10.2009, 19:26     Конструкторы #1
Спроектируйте класс – “калькулятор”, предназначенный для выполнения арифметических операций с двумя операндами и добавьте в разработанный вами класс-калькулятор конструктор, инициализирующий объект. Класс может разработан не верно но вот он
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++ конструкторы
C++ конструкторы
Конструкторы C++
Конструкторы C++
C++ Конструкторы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,302
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
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,302
11.10.2009, 03:36     Конструкторы #4
При чём тут case?
Я его не использовал.
Кстати.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1345 / 878 / 51
Регистрация: 02.01.2009
Сообщений: 2,642
Записей в блоге: 1
11.10.2009, 03:47     Конструкторы #5
Цитата Сообщение от kravam Посмотреть сообщение
При чём тут case?
Я его не использовал.
у вас спросили -
Цитата Сообщение от crashc Посмотреть сообщение
выбор действия здесь можно только путем case или еще есть способы? может можно это реализовать как то через класс
Кстати ваш код ужасен (и автора изначально тоже)..
Том Ардер
Модератор
 Аватар для Том Ардер
3644 / 2263 / 276
Регистрация: 15.06.2009
Сообщений: 3,976
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
быдлокодер
 Аватар для kravam
1513 / 873 / 44
Регистрация: 04.06.2008
Сообщений: 5,302
11.10.2009, 18:02     Конструкторы #8
Я не знаю, до деструкторов не дошёл ещё.
crashc
23 / 23 / 4
Регистрация: 26.07.2009
Сообщений: 414
11.10.2009, 18:38  [ТС]     Конструкторы #9
жаль
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,888
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++ Конструкторы
C++ Конструкторы C++
C++ Конструкторы С++
C++ Конструкторы
Конструкторы C++

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

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

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