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

Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?

[es] :: C/C++ programiranje :: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?

[ Pregleda: 2651 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

fanfare
nezaposlen
Prnjavor,BiH

Član broj: 231940
Poruke: 27
*.teol.net.



Profil

icon Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?07.02.2010. u 13:58 - pre 173 meseci
Nisam siguran da li sam dobro napisao kod! Bilo bi poželjno da ga neko prokomentariše.

Zadatak:





Kod koji sam napisao:
Code:
# include <iostream>
using namespace std;

class Figura {
      public:
             Figura(int r, int k)
               { 
                 red=new int[8] ;kolona=new int[8];
                 red[r]=vrsta_figure; kolona[k]=vrsta_figure;
               }
             char operator ()=0;
              
      protected:
                int *red,*kolona,;
                char vrsta_figure; 
}; 



[Ovu poruku je menjao fanfare dana 07.02.2010. u 15:08 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?07.02.2010. u 14:15 - pre 173 meseci
nije dobro, ne treba svaka figura da cuva svoju kopiju sahovske table vec treba samo da zapamti svoje koordinate na istoj, takle ne pravis nizove vec samo pamtis r i k.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

fanfare
nezaposlen
Prnjavor,BiH

Član broj: 231940
Poruke: 27
*.teol.net.



Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?07.02.2010. u 15:14 - pre 172 meseci
Znaci dovoljno je samo :
Code:
# include <iostream>
using namespace std;

class Figura {
      public:
             Figura(int r, int k)
               { 
                 red=r ;kolona=k;
               }
             char operator ()=0;
              
      protected:
                int red,kolona,;
                char vrsta_figure; 
}; 


I interesuje me da li treba operatorsku f-iju () preklopiti u ovoj klasi ili u nekoj izvedenoj i na koji nacin?
 
Odgovor na temu

nnn
Tech Lead
Haxr.io
Beograd

Član broj: 16743
Poruke: 679
79.101.189.*



+87 Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?07.02.2010. u 16:19 - pre 172 meseci
Moras da imas virtualenu metodu da bi ti klasa bila apstraktna..
 
Odgovor na temu

fanfare
nezaposlen
Prnjavor,BiH

Član broj: 231940
Poruke: 27
*.teol.net.



Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?07.02.2010. u 18:04 - pre 172 meseci
Pa zar operatorska funkcija kojom se preklapa operator() nije čisto virtuelna: char operator() =0; pa je samim tim i klasa apstraktna.?


 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?08.02.2010. u 09:41 - pre 172 meseci
Citat:
fanfare: I interesuje me da li treba operatorsku f-iju () preklopiti u ovoj klasi ili u nekoj izvedenoj i na koji nacin?


Tekst zadatka je sročen tako da može da zbuni čoveka. Čista virtuelna funkcija mora da bude implementirana u nekoj izvedenoj klasi (inače nije čista nego samo virtuelna). Međutim, ne samo što je dato objašnjenje šta funkcija/operator treba da radi (insinuirajući da to treba da se vidi u rešenju), nego je i jedini potreban podatak (vrsta figure) već dat u osnovnoj klasi (ponovo navodeći na zaključak da i kod koji koristi ovaj podatak treba da bude u osnovnoj klasi).

Način na koji bi preklopio operator je isti kao i za funkcije. U izvedenoj klasi bi imao isti operator kao i u osnovnoj, virtual char operator(), i imao bi i kod za taj operator, recimo nešto ovako:

Code:
char IzvedenaFigura::operator()
{
    return vrsta_figure;
}


Možda možeš da primetiš jednu malu nelogičnost u svemu ovome. Ovaj kod će biti identičan za svaku izvedenu figuru (ako su izvedene figure Pešak, Top, Skakač...). Nema logike da istovetan kod postoji na više mesta, već taj kod treba da bude u osnovnoj klasi, ali zadatak je tako postavljen da se čovek uhvati za glavu.

Uzgred, ovo "= 0" nije dovoljno, potrebno je i ono "virtual": virtual char operator() = 0

Imaš zarez viška posle definicije figure.
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.mbb.telenor.rs.



+2790 Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?08.02.2010. u 11:42 - pre 172 meseci
Code:
#include <cstdlib>
#include <iostream>

using namespace std;

class Figura {
public:
    Figura(int r, int k)
    {
     red=r ;kolona=k;
    }

    virtual char operator ()()  = 0;

protected:
    int red,kolona,;
    char vrsta_figure;
};

class Top : public Figura {
public:
    Top(int r, int k) : Figura(r,k)
    {
    }

    char operator()()
    {
        return 'T';
    }

};

int main(int argc, char *argv[])
{
    Top t(2,3);
    cout << t() << endl;

    return EXIT_SUCCESS;
}

Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?08.02.2010. u 12:05 - pre 172 meseci
E da, ()().

A u ovom rešenju koja je uloga članice Figura::vrsta_figure?
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.mbb.telenor.rs.



+2790 Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?08.02.2010. u 12:18 - pre 172 meseci
Da se zadovolji postavka zadatka, koja je čudna. Ovo se rešava ili virtuelnom metodom bez atributa ili atributom koga postavlja konstruktor, a vraća nevirtuelna metoda.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

fanfare
nezaposlen
Prnjavor,BiH

Član broj: 231940
Poruke: 27
*.teol.net.



Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?12.02.2010. u 22:01 - pre 172 meseci
Citat:
Nedeljko:

virtual char operator ()() = 0;




Sada mi je uglavnom sve jasno ,osim: Zasto u cisto virtuelnoj funkciji stoji ()()?
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?04.03.2010. u 14:15 - pre 172 meseci
Citat:
fanfare: Sada mi je uglavnom sve jasno ,osim: Zasto u cisto virtuelnoj funkciji stoji ()()?

Zato sto je operator ()
Prvo () je operator a drugo () su zagrade funkcije
 
Odgovor na temu

[es] :: C/C++ programiranje :: Definisati apstraktnu klasu Figura (apstrakcija šahovskih figura)?

[ Pregleda: 2651 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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