Wywoływanie klasy w Dev C++

0

Witam, oto co wyskrobałem na zajęciach programowania :

#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>

using namespace std;

class Kalkulator
{

public:
        
        int a,b,wynik;
        void kalkulator(int);
        void Dodaj(int,int);
        void Odejmij(int,int);
        void Podziel(int,int);
        void Pomnoz(int,int);
        void Procent(int,int);
        void Pierwiastek(int);
              
        int Wynik();

};
              
void Kalkulator::Dodaj(int a, int b)
  {
      cout << "Podaj liczbe a = ";
      cin >> a;
      cout << "Podaj liczbe b = ";
      cin >> b;
      wynik=a+b;
      cout << "Wynik wynosi = " << wynik;
  }
 
void Kalkulator::Odejmij(int a, int b)
  {
      cout << "Podaj liczbe a = ";
      cin >> a;
      cout << "Podaj liczbe b = ";
      cin >> b;
      wynik=a-b;
      cout << "Wynik wynosi = " << wynik;
  }
 
void Kalkulator::Podziel(int a, int b)
  {
      cout << "Podaj liczbe a = ";
      cin >> a;
      cout << "Podaj liczbe b = ";
      cin >> b;
      wynik=a/b;
      cout << "Wynik wynosi = " << wynik;
  }
 
void Kalkulator::Pomnoz(int a, int b)
  {
      cout << "Podaj liczbe a = ";
      cin >> a;
      cout << "Podaj liczbe b = ";
      cin >> b;
      wynik=a*b;
      cout << "Wynik wynosi = " << wynik;
  }

void Kalkulator::Procent(int a, int b)
  {
      cout << "Podaj liczbe a = ";
      cin >> a;
      cout << "Podaj liczbe b = ";
      cin >> b;
      wynik=a+b;  
      cout << "Wynik wynosi = " << wynik;                 
  }
 
void Kalkulator::Pierwiastek(int a)
  {
      cout << "Podaj liczbe a = ";
      cin >> a;
      wynik=(int)sqrt(a);
      cout << "Wynik wynosi = " << wynik;
  }
                  
main ()
{
  int a,b,x;
  float Dodaj,Odejmij,Podziel,Pomnoz,Procent,Pierwiastek,Wpisz,Kalkulator,wynik;
  do
  {
  system("cls");
  cout << "ttKALKULATOR" << endl; 
  cout << "Prosze wybrac opcje wpisujac wybrana liczbe" << endl;
  cout << endl;
  cout << "1 - DODAWANIE" << endl;
  cout << "2 - ODEJMOWANIE" << endl;
  cout << "3 - MNOZENIE" << endl;
  cout << "4 - DZIELENIE" << endl;
  cout << "5 - PROCENT" << endl;
  cout << "6 - PIERWIASTEK" << endl;
  cout << "nESC - Koniec programu" << endl;
  
  wynik=0;
  cout << endl;
  x=getch();
  
  switch(x)
      {
          case '1' : Kalkulator.Dodaj(a,b); break;
          case '2' : Kalkulator.Odejmij(a,b); break;
          case '3' : Kalkulator.Podziel(a,b); break;
          case '4' : Kalkulator.Pomnoz(a,b); break;
          case '5' : Kalkulator.Procent(a,b); break;
          case '6' : Kalkulator.Pierwiastek(a); break;
      }
  } 
  while (x!=27); 
}

Jest to prosty kalkulator zrobiony za pomocą klas. Problem jest w tym, ze wyskakuje błąd w linijce :
case '1' : Kalkulator.Dodaj(a,b); break;
a wyskakuje błąd :
'Dodaj' is not a type
Domyslam sie, że źle wywyluje klasy. Jak to się powinno robić ? Proszę o pomoc.

0

w funkcji main musisz zdefiniować twój "Kalkulator" czyli coś takiego :

Kalkulator calc
//a potem:
calc.Dodaj(a,b);
1

Klasa to jest pewien schemat, taki jakby "projekt". To co próbujesz zrobić wygląda trochę tak jakbyś zamówił plan domu u architekta i dziwił się ze nie da się w nim zamieszkać. Najpierw trzeba ten dom wybudować na podstawie planu -> trzeba utworzyć obiekt danej klasy.

0

wyczli jak ma to mniej wiecej wygladac w moim programie ?

0

Jak tworzysz jakieś zmienne danego typu to robisz tak :

int x; // tworzysz twój X jako int
x = 10;
cout << x;
////
//tak samo twój Kalkulator musisz go stworzyć więc:
Kalkulator calc;

calc.Dodaj(a,b);
calc.Odejmij(a,b);
//etc
0

dobra już sobie poradziłem, dzieki bardzo za podpowiedz !

0

A której części nie zrozumiałeś? Ja wiem, dużo tekstu i trudnych słów, ale może jednak warto ruszyć głową?

Kalkulator jestem_leniwy;
          case '1' : jestem_leniwy.Dodaj(a,b); break;
          case '2' : jestem_leniwy.Odejmij(a,b); break;
          case '3' : jestem_leniwy.Podziel(a,b); break;
          case '4' : jestem_leniwy.Pomnoz(a,b); break;
          case '5' : jestem_leniwy.Procent(a,b); break;
          case '6' : jestem_leniwy.Pierwiastek(a); break;

1 użytkowników online, w tym zalogowanych: 0, gości: 1