Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problem sa stvaranjem novog tipa - typedef

[es] :: C/C++ programiranje :: C/C++ za početnike :: problem sa stvaranjem novog tipa - typedef

[ Pregleda: 1691 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fidelito_Castro
Fidelito_Castro
Subotica

Član broj: 143557
Poruke: 87
*.eunet.yu.



Profil

icon problem sa stvaranjem novog tipa - typedef17.07.2008. u 13:28 - pre 192 meseci
Prilikom prevodjenja ovog koda, prevodilac mi izbacuje gresku. Pretpostavljam da je zbog konstruktora u kome kao argumente prosledjujem tipove prethodno definisane.Zaista ne znam zasto.

Code:

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

//definisanje konstanti nabrajanja
typedef unsigned short int USHORT;
typedef unsigned long int ULONG;
enum BOOL {FALSE, TRUE};
enum IZBOR {DrawRect = 1, GetArea, GetPerim, ChangeDimension, Quit};

//Definicija klase Pravougaonik
class Pravougaonik
{
      private:
      USHORT sirina;
      USHORT visina;
      
      public:
       Pravougaonik(USHORT s, USHORT v): sirina(s),visina(v){}//konstruktor
      ~Pravougaonik(){}   //destruktor
      
      //metodi
      USHORT UzmiVisinu() const {return visina;}
      USHORT UzmiSirinu() const {return sirina;}
      ULONG  UzmiPovrsinu() const{return sirina*visina;}
      ULONG UzmiObim() const {return 2*visina + 2*sirina;}
      void SetSize(USHORT novaSirina,USHORT novaVisina ):sirina(novaSirina), visina(novaVisina)
      {}
      void CrtajOblik()   const;      
      
};// kraj definicije klase Pravougaonik

//Prototipi funkcija
USHORT DoMenu();
void DoDrawRect(Pravougaonik);
void DoGetArea(Pravougaonik);
void DoGerPerim(Pravougaonik);

//glavna funkcija main
int main()
{
    //Kreiranje instance
    Pravougaonik pravougaonik(30,5);
    
    USHORT izbor = DrawRect;
    USHORT quit = FALSE;
    
    while(!quit)
    {
                izbor = DoMenu();
                if(izbor < DrawRect || izbor > quit)
                {
                         cout<<"Neispravan izbor!!!Molimo vas pokusajte ponovo!!!"<<endl;
                         continue;
                }
                         switch(izbor)
                         {
                         case DrawRect:
                           DoDrawRect(pravougaonik); 
                           break;
                         case GetArea:
                           DoGetArea(pravougaonik);
                           break;
                         case GetPerim:
                           DoGetPerim(pravougaonik);
                           break;
                         case ChangeDimension:
                           USHORT novaSirina,novaVisina;
                           cout<<"Nova sirina> ";
                           cin >> novaSirina;
                           cout<<endl;
                           cout<<"Nova visina> ";
                           cin >> novaVisina;
                           pravougaonik.SetSize(novaSirina, novaVisina);
                           DoDrawRect(pravougaonik);
                           break;
                         case Quit:
                           quit = TRUE;
                           cout<<"Izlazak iz programa..."<<endl;
                           break;
                         case default:
                           cout<<"Greska u izboru!!!"<<endl;
                           quit = TRUE;
                           break;
                        }    // kraj izbora switch
    } // kraj while petlje
    
    
   
    system("PAUSE");
    return 0;
}   // kraj funkcije main





[Ovu poruku je menjao Fidelito_Castro dana 17.07.2008. u 14:51 GMT+1]

[Ovu poruku je menjao Fidelito_Castro dana 17.07.2008. u 14:58 GMT+1]
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-3.sezampro.yu.



+395 Profil

icon Re: problem sa stvaranjem novog tipa - typedef17.07.2008. u 15:01 - pre 192 meseci
Code:

typedef unisgned short USHORT ; 
typedef unsigned long ULONG ; 
a ne : 
typedef unisgned short /*int*/ USHORT ; 
typedef unsigned long /*int*/ ULONG ; 

A ti imas 2 tipa u deklaraciji a to je short- int i long-int



Viva lollapalooza
 
Odgovor na temu

Fidelito_Castro
Fidelito_Castro
Subotica

Član broj: 143557
Poruke: 87
*.eunet.yu.



Profil

icon Re: problem sa stvaranjem novog tipa - typedef17.07.2008. u 17:00 - pre 192 meseci
Hvala na odgovoru, ali opet ovaj kod ne moze da se kompajlira!!!
Code:

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

//definisanje konstanti nabrajanja
typedef unsigned short USHORT ; 
typedef unsigned long ULONG ; 

enum BOOL {FALSE, TRUE};
enum IZBOR {DrawRect = 1, GetArea, GetPerim, ChangeDimension, Quit};

//Definicija klase Pravougaonik
class Pravougaonik
{
      private:
      USHORT sirina;
      USHORT visina;
      
      public:
      Pravougaonik(USHORT Sirina, USHORT Visina), sirina(Sirina),visina(Visina){}//konstruktor
      ~Pravougaonik(){}   //destruktor
      
      //metodi
      USHORT UzmiVisinu() const {return visina;}
      USHORT UzmiSirinu() const {return sirina;}
      ULONG  UzmiPovrsinu() const{return sirina*visina;}
      ULONG UzmiObim() const {return 2*visina + 2*sirina;}
      void SetSize(USHORT novaSirina,USHORt novaVisina )sirina(novaSirina), visina(novaVisina)
      {}
      void CrtajOblik()   const;      
      
};// kraj definicije klase Pravougaonik

//Prototipi funkcija
USHORT DoMenu();
void DoDrawRect(Pravougaonik);
void DoGetArea(Pravougaonik);
void DoGerPerim(Pravougaonik);

//glavna funkcija main
int main()
{
    //Kreiranje instance
    Pravougaonik pravougaonik(30,5);
    
    USHORT izbor = DrawRect;
    USHORT quit = FALSE;
    
    while(!quit)
    {
                izbor = DoMenu();
                if(izbor < DrawRect || izbor > quit)
                {
                         cout<<"Neispravan izbor!!!Molimo vas pokusajte ponovo!!!<<endl;
                         continue;
                }
                         switch(izbor)
                         {
                         case DrawRect:
                           DoDrawRect(pravougaonik); 
                           break;
                         case GetArea:
                           DoGetArea(pravougaonik);
                           break;
                         case GetPerim:
                           DoGetPerim(pravougaonik);
                           break;
                         case ChangeDimension:
                           USHORT novaSirina,novaVisina;
                           cout<<"Nova sirina> ";
                           cin >> novaSirina;
                           cout<<endl;
                           cout<<"Nova visina> ";
                           cin >> novaVisina;
                           pravougaonik.SetSize(novaSirina, novaVisina);
                           DoDrawRect(pravougaonik);
                           break;
                         case Quit:
                           quit = TRUE;
                           cout<<"Izlazak iz programa..."<<endl;
                           break;
                         case default:
                           cout<<"Greska u izboru!!!"<<endl;
                           quit = TRUE;
                           break;
                }    // kraj izbora switch
    } // kraj while petlje
    
    
    return 0;
    system("PAUSE");
}   // kraj funkcije main

 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: problem sa stvaranjem novog tipa - typedef17.07.2008. u 17:58 - pre 192 meseci
Bolje da si paste-ovao compiler error umesto celog koda ..
Ovo ti sigurno nece proci ....
Code:

 void SetSize(USHORT novaSirina,USHORt novaVisina )sirina(novaSirina), visina(novaVisina)
      {}

Ovde si hteo da setujes promenljive kao u konstruktoru .To nije dozvoljeno .
I C++ je case-sensitive tako da razlikuje mala i velika slova (USHORT nije isto sto i USHORt)

Code:

 void SetSize(USHORT novaSirina,USHORT novaVisina )
   {
      sirina = novaSirina; visina = novaVisina ; 
   }

Viva lollapalooza
 
Odgovor na temu

Fidelito_Castro
Fidelito_Castro
Subotica

Član broj: 143557
Poruke: 87
*.eunet.yu.



Profil

icon Re: problem sa stvaranjem novog tipa - typedef17.07.2008. u 19:34 - pre 192 meseci
Hvala na pomoci, sada kad sam se probudio videh kakve greske napravi :).
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-4.sezampro.yu.



+395 Profil

icon Re: problem sa stvaranjem novog tipa - typedef17.07.2008. u 23:33 - pre 192 meseci
Citat:
Fidelito_Castro: Hvala na pomoci, sada kad sam se probudio videh kakve greske napravi .

Hehe Nista ne brini ..cim radis C++ po ovoj vrucini znaci da si resio da ga naucis.Samo napred!!!
Viva lollapalooza
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: problem sa stvaranjem novog tipa - typedef

[ Pregleda: 1691 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.