játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5476
FZoli:    4893
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2526

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2195
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] > 30 < [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [142]
proof88 - Törzstag | 530 hsz       Online status #167489   2011.10.27 09:30 GMT+1 óra  
az editor az egy privát dolog, kivéve ha közzé akarod tenni
vagy utólag is megírhatod a saját keretrendszereddel attól függ hogy osztod be az idődet
   
Pretender - Törzstag | 2498 hsz       Online status #167486   2011.10.27 06:57 GMT+1 óra  
Editort összebarkácsolni, de gondolni kell a jövőre is, mi lesz, ha játék lesz a vége, netán olyan, hogy el is lehet adni?! Nem szívesen írom oda, hogy a Qt cuccot használom, avagy nem szívesen fizetek, ha egy kis erőbefektetéssel én is meg tudom csinálni (persze nem olyan jóra, de hát na )

   
proof88 - Törzstag | 530 hsz       Online status #167485   2011.10.27 06:41 GMT+1 óra  
attól függ mit akarsz vele kezdeni
   
Pretender - Törzstag | 2498 hsz       Online status #167484   2011.10.27 06:23 GMT+1 óra  
Nézegettem már én ezt a Qt-t. Bár nem tudom mennyire gáz, hogy egy külső cuccot használ az ember, és nem írja meg magának, nem is beszélve a licensekről

   
proof88 - Törzstag | 530 hsz       Online status #167483   2011.10.27 06:15 GMT+1 óra  
cpp-hez még ott a Qt, bár az egy komplett crossplatform keretrendszer (Pretender ezt EVA1-ből fogod tanulni ).
   
Pretender - Törzstag | 2498 hsz       Online status #167482   2011.10.27 05:38 GMT+1 óra  
Tényleg marha jó, ebből könnyebb felépíteni, mint kódban számolgatni. Docking lehetőséget csak én nem találtam amúgy?

   
fpeti - Törzstag | 1295 hsz       Online status #167481   2011.10.27 03:32 GMT+1 óra  
Nem találtam sima win32 topic-ot, de aki win-es ctrl-eket szeretne használni MFC nélkül sima c++-al, ez nagyon jól jöhet: resedit
Állati jó, megcsinálja a .rc filet, resource.h-t is.
   
Pretender - Törzstag | 2498 hsz       Online status #167234   2011.10.20 18:31 GMT+1 óra  
Ja, közben ráébredtem, meg átbeszéltük Jogával, meg ilyesmi. Ez egy jó megoldás, a másik lehetőség meg egy
Kód:
static B instance;

B()
{
    instance = this;
}

de ez a csúnyább megoldás

   
Asylum - Törzstag | 5476 hsz       Online status #167233   2011.10.20 18:22 GMT+1 óra  
Member függvényre önmagában nem lehet pointert állitani, mindig kell mellé egy objektum is, amire meghivod. Ahogy Joga is mondta, te egy A-ra akarod meghivni a B metódusát, még az a jo hogy nem száll el...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Joga - Törzstag | 1791 hsz       Online status #167226   2011.10.20 17:09 GMT+1 óra  
Ilyesmi?

Kód:
class Stuff{
public:
    virtual void execute();
    virtual ~Stuff;
}

template<class X>
class TheStuff{
public:
    TheStuff( X *_c, void (X::*_method)() ){ C = _c; method = _method }
    void execute(){ c -> method(); }
    void ~TheStuff();
private:
    X *c;
    void (X::*method)();
}


class B
{
    int member1;
    Stuff* a;

    B()
    {
        a = new TheStuff<B>( this, func1 );
        member1 = 10;
    }

    void func1()
    {
        std::cout << member1;
    }
};
(ಠ ›ಠ) Stewie!

   
Pretender - Törzstag | 2498 hsz       Online status #167225   2011.10.20 17:00 GMT+1 óra  
Ez eddig nagyon jó, de az érdekel, hogy hogy lehet megoldani Örököltetni nem tudok belőle, mert sok ilyen "A"-m van

   
Joga - Törzstag | 1791 hsz       Online status #167224   2011.10.20 16:59 GMT+1 óra  
Nem zavar, hogy egy A objektumon akarod végrehajtani a B osztály metódusát?
(ಠ ›ಠ) Stewie!

   
Pretender - Törzstag | 2498 hsz       Online status #167223   2011.10.20 16:37 GMT+1 óra  
Kód:
class A
{
    typedef void (A::*method)();
    method OnProcess;
};

class B
{
    int member1;
    A* a;

    B()
    {
        a->OnProcess = &B::func1();
        member1 = 10;
    }

    void func1()
    {
        std::cout << member1;
    }
};

Nagyjából ez a helyzet. Amikor meghívom a func1-et (az OnProcess-en keresztül), akkor a B tagjait nem "látja". Olyan értelemben, mintha minden null lenne. Erre van valami megoldás, vagy tök máshogy kell majd csinálnom?

   
Pretender - Törzstag | 2498 hsz       Online status #167214   2011.10.20 13:14 GMT+1 óra  
Akkor tök természetes. Na de csak ennyi "leakem" legyen...^^ (2*24 byte)

   
Asylum - Törzstag | 5476 hsz       Online status #167213   2011.10.20 13:11 GMT+1 óra  
Statikus valtozok destruktorai a main utan futnak le (nalam is emiatt voltak memory leakek).
Megoldas: sajat STL A leak egyebkent a map fejeleme ami mindig letezik meg ha swappeled is.

Ha az a problema hogy nemtod hogy irj mapet akkor glprojects (es a map speciel jol mukodik tobbnyire).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #167197   2011.10.20 07:00 GMT+1 óra  
Kód:
//header
typedef std::map<T,K> _map;
static _map map;

//cpp
Class::_map Class::map;

Class::~Class()
{
    map.Clear();
    _map().swap(map);
}

Mégis, a return 0 előtt van egy _CrtDumpMemoryLeaks, és 24 byte memory leaket ír. Miért? + Mi a megoldás? Vagy simán nincs megoldás, és ez így rendben van, mert a program lefutása után úgy is felszabadul a memória?

   
Joga - Törzstag | 1791 hsz       Online status #167147   2011.10.19 14:48 GMT+1 óra  
Ha a tagoknál fontos az inicializáció sorrendje, akkor ne használj initialization list-et, hanem konstruktorban inicializálj, kb ezt mondja a szöveg

Initialization list esetén a sorrend nem garantált
(ಠ ›ಠ) Stewie!

   
zeller - Törzstag | 486 hsz       Online status #167139   2011.10.19 11:55 GMT+1 óra  
Olvasgatom a c++ lite faq-ot es a ctor init listakhoz irta ezt:
Bottom line is to use common sense: if it's cheaper, better, faster, etc. to not use them, then by all means, don't use them. This might happen when your class has two constructors that need to initialize the this object's data members in different orders.
Miert lesz ez nem jo?

   
Pretender - Törzstag | 2498 hsz       Online status #166680   2011.10.13 06:11 GMT+1 óra  
Na igen... és ki beszélt itt biciklizésről? Nem azt mondtam, h ne kérdezz, de mindezt nagyon jól elmondja egy rakat könyv. Gondolom... én c#-ot tanultam először, de onnantól szinte mind1, csak a szintaktika más.

   
zeller - Törzstag | 486 hsz       Online status #166675   2011.10.12 21:35 GMT+1 óra  
De programozasi nyelvek szintaktikajat, szemantikajat es know-how-jat mar igen... Gyakorlassal egybekotve persze.

   
KILLER_RICSI - Tag | 8 hsz       Online status #166674   2011.10.12 20:59 GMT+1 óra  
Srácok, köszi a tanácsokat...

Könyvből sem tanult meg még senki biciklizni...

   
Pretender - Törzstag | 2498 hsz       Online status #166584   2011.10.11 20:44 GMT+1 óra  
Ja, lehet, hogy én is félreértettem
Érdemes tanulni egy kis OOP-t, és c++t

   
Asylum - Törzstag | 5476 hsz       Online status #166583   2011.10.11 20:28 GMT+1 óra  
Én még a kérdést se értem, csak sejtem mire gondolsz (a Map osztályból elérni egy main-ben deklarált tömböt?).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #166582   2011.10.11 19:45 GMT+1 óra  
Kód:
Robotok* GetRobot(const int& p_Id)
{
    return robot[p_Id];
}

?

szerk.:
ajánlok valami alapokkal foglalkozó c++ könyvet

   
KILLER_RICSI - Tag | 8 hsz       Online status #166581   2011.10.11 19:42 GMT+1 óra  
Sziasztok!


Adott a következő példányosítás a main-ben:

Kód:
Robotok **robot = new Robotok*[n];
for(int i = 0; i < n; i++)
{
robot[i] = new Robotok();
}


Azt szeretném megoldani, hogy a Map osztály egyik metódusából tudjak hivatkozni a robotok osztály robot[ i ] valamelyik példányára.
Ehhez meg kellene adnom egy bemeneti paramétert a Map osztály adott metódusában, amit nem tudok.
Ugyan így kimeneti paramétert is tudnom kellene adni, ha változtatok valamit adott robot[ i ] példányon.

Tudna valaki segíteni? (Igen, beraktam kód-blokkba a kódot, hogy rendesen megjelenjen. - HG)

Köszi!

Üdv: Ricsi

Ezt a hozzászólást HomeGnome módosította (2011.10.11 21:23 GMT+1 óra, ---)

   
KILLER_RICSI - Tag | 8 hsz       Online status #166580   2011.10.11 19:36 GMT+1 óra  
Köszi!

   
Asylum - Törzstag | 5476 hsz       Online status #166487   2011.10.09 15:13 GMT+1 óra  
Kód:
class Map
{
private:
    int** tomb;
    int width, height;

public:
    Map() {
        tomb = NULL;
        width = height = 0;
    }

    ~Map() {
        // TODO: törölni a résztömböket
        delete [] tomb;
    }

    void resize(int w, int h)
    {
        // TODO: ha létezik már akkor töröld
        tomb = new int*[w];

        for( int i = 0; i < w; ++i )
            tomb[i] = new int[h];
    }
};
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
KILLER_RICSI - Tag | 8 hsz       Online status #166485   2011.10.09 14:54 GMT+1 óra  
Sikerült megint elakadnom....



A problémám most az, hogy nem tudok létrehozni dinamikus helyfoglalású tömböt a Map osztályban

Elgondolásom szerint a főprogramban adnám meg a 2D-s tömb méretét 2 változóval (x, y).
A Map osztályban két metódus segítségével állítanám be a tömb méretét (main-ból adnám át a két értéket, setx, sety).

A Map header file-ában pedig deklarálnom kell a matrix tömböt.
És itt jön a probléma, mert nem tudom előre a méretét, így nem tudom megadni....
Gondolom, hogy itt valami általános formulát kellene használni, amellyel jelzem, hogy lesz egy ilyen nevű tömb....

(Metóduson belül nem hozhatom létre a tömböt, mert az csak a metódus lefutásáig van életben.)

Tudna valaki segíteni?

Köszönöm!

Üdv: Ricsi

   
KILLER_RICSI - Tag | 8 hsz       Online status #166480   2011.10.09 13:58 GMT+1 óra  
Köszönöm, köszönöm!

Készülnek a robotok... ))


Üdv: Ricsi

   
gaborlabor - Moderátor | 4449 hsz       Online status #166479   2011.10.09 13:45 GMT+1 óra  
Robotok *robotok = new Robotok[n];
n a darabszám.
felszabadításnál delete[] robotok;

(amúgy a Robotok típust átnevezném Robot-ra.)

   
borsi - Tag | 180 hsz       Online status #166478   2011.10.09 13:44 GMT+1 óra  
pl
Kód:
Robotok **robot = new Robotok*[n];
for(int i = 0; i < n; i++)
{
robot[i] = new Robotok();
}


Ennél a megoldásnál még figyelni kell arra, hogy a delete [] robot; leakel, először végig kell menni a tömbön és egyenként fel kell szabadítani a Robotok objektumokat.

Kód:
for(int i = 0; i < n; i++)
{
      delete robot[i];
}
delete [] robot;

Ezt a hozzászólást borsi módosította (2011.10.09 14:03 GMT+1 óra, ---)

   
KILLER_RICSI - Tag | 8 hsz       Online status #166477   2011.10.09 13:37 GMT+1 óra  
Sziasztok!


Lenne a következő foglalás:


Robotok *robot1 = new Robotok;
Robotok *robot2 = new Robotok;
...
...
...
Robotok *robotn = new Robotok;


Így létre tudom hozni a sorszámozott robot pédányokat.
A kérdésem az lenne, hogy a létrehozást tudom-e tömbként megtenni?
Az lenne a cél, hogy ciklussal hozzam létre a robotokat - dinamukusan megadott mennyiségben.
Valahogy így gondoltam:

Robotok *robot[n] = new Robotok;

Persze ez nem működik.

Van valakinek ötlete?

Köszi!

Üdv: Ricsi

   
Asylum - Törzstag | 5476 hsz       Online status #166406   2011.10.07 22:37 GMT+1 óra  
Idézet
borsi :
találj ki olyan problémát, amihez optimális adatszerkezet a list<map<string, vector<int>>>...



Ismered a mondást: aki nem érti az tanitja...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
borsi - Tag | 180 hsz       Online status #166395   2011.10.07 21:26 GMT+1 óra  
Ja hát 'az egyetem' javára legyen írva, hogy 2. félév elején végig vettük, melyik stl konténer milyen adatszerkezetet használ (nagyjából), ezeknek mik az erősségeik, gyengéik. A számonkérés mondjuk vicces volt, pl találj ki olyan problémát, amihez optimális adatszerkezet a list<map<string, vector<int>>>...

   
Joga - Törzstag | 1791 hsz       Online status #166392   2011.10.07 20:52 GMT+1 óra  
proof88: Igen, úgy vannak implementálva

szerk.: Illetve a láncolt lista sszem kétszeresen láncolt, fejelemes
(ಠ ›ಠ) Stewie!

   
proof88 - Törzstag | 530 hsz       Online status #166391   2011.10.07 20:51 GMT+1 óra  
én nem tudom, hogy hogy vannak a háttérben implementálva a vector és list osztályok, de ha a vector dinamikus tömbként, a list meg láncolt listaként, akkor az mindent elmond a különbségekről.
   
dvorgaz - Törzstag | 576 hsz       Online status #166385   2011.10.07 19:08 GMT+1 óra  
Pl. ha a közepébe akarsz új elemet berakni.
   
Pretender - Törzstag | 2498 hsz       Online status #166384   2011.10.07 18:45 GMT+1 óra  
nekem mindenre elég a vector (meg néha a map, pl. content managernél). Miben jobb a list?

   
Joga - Törzstag | 1791 hsz       Online status #166383   2011.10.07 18:44 GMT+1 óra  
én meg mindenre a legmegfelelőbb adatszerkezetet
(ಠ ›ಠ) Stewie!

   
Pretender - Törzstag | 2498 hsz       Online status #166381   2011.10.07 18:13 GMT+1 óra  
én meg vectort

   
Seeting - Törzstag | 2306 hsz       Online status #166369   2011.10.07 13:53 GMT+1 óra  
Dejó hogy én mindenre mapot használok
   
Asylum - Törzstag | 5476 hsz       Online status #166354   2011.10.07 08:06 GMT+1 óra  
De van jelentosege mert esetenkent orakig pocsolsz mire rajossz hogy mitol van. Ezert is erdemes sajatot irni / kerulni az ilyen statikus valtozokat + {}-be tenni a programot.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 486 hsz       Online status #166353   2011.10.07 06:46 GMT+1 óra  
Aha. Szoval igazabol ennek semmi jelentosege sincsen, egy nagyobb program futasa kozben nem okoz memory leaket csak ugy a list meg az xtree hasznalata

   
Asylum - Törzstag | 5476 hsz       Online status #166334   2011.10.06 19:38 GMT+1 óra  
Azert mert az elsö esetben a dump után fut le az li destruktora.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 486 hsz       Online status #166323   2011.10.06 17:49 GMT+1 óra  
Ez nekem magas. Mi az, hogy valojaban nem? Es akkor miert dumpol. Es az anonimusz blokkban miert nem?

   
Asylum - Törzstag | 5476 hsz       Online status #166321   2011.10.06 17:01 GMT+1 óra  
Kód:
// igy igen (valojaban nem, de ki fogja dumpolni)
int main()
{
    std::list<int> li;

   // ...
}


// igy nem
int main()
{
    {
        std::list<int> li;
    }

    // ...
}
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 486 hsz       Online status #166313   2011.10.06 15:28 GMT+1 óra  
Ezt most nem ertem. Mikor hagy leaket? Mindig?

   
Asylum - Törzstag | 5476 hsz       Online status #166311   2011.10.06 15:03 GMT+1 óra  
A vector oke de pl. a list es az xtree (set, map, stb.) memory leaket hagy maga utan, erre erdemes szamitani.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
proof88 - Törzstag | 530 hsz       Online status #166302   2011.10.06 13:23 GMT+1 óra  
Pretender - Törzstag | 2498 hsz       Online status #166301   2011.10.06 13:12 GMT+1 óra  
[OFF]
Azért fikázom, mert egyelőre röhejes dolgokat tanulunk, de egy szóval sem állítottam, hogy ez mindörökre így lesz. Sőt, vizsgaidőszakban sírni fog a szám, hogy jajj de nehéz!
[/OFF]


Akkor ezentúl ígérem, próbálok tagfüggvényt írni Én mindenesetre minden tagfüggvényt (és metódust) ha van visszatérési értéke, ha csak void, "UpperCamelCase"-ben írok (nem is tudtam, hogy így hívják)

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] > 30 < [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [142]