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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2185
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
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] [141]
Seeting - Törzstag | 2306 hsz       Online status #195170   2013.06.17 11:36 GMT+1 óra  
Idézet
Asylum :
De azért nem szégyellitek magatok h nemtudtok letenni egy C++ vizsgát?
Hát a mi a f*szomért írok tutoriált?



Én már letettem 2 évvel ezelőtt 3asra. Csak az asszonypajtásnak kell. Meg egyébként szigarítottak rajta, szerintem nehezebb lett.
   
Asylum - Törzstag | 5440 hsz       Online status #195161   2013.06.16 21:42 GMT+1 óra  
(amúgy nekem is, de pssszt ) Valamikor tudtam én is h lehet ilyet, de a fax emléxik má
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #195160   2013.06.16 21:41 GMT+1 óra  
Azt nem tudom, h minek írsz, de ez a 1 template-re való specializáció nekem új volt Persze, végül is teljesen logikus dolog

   
Asylum - Törzstag | 5440 hsz       Online status #195159   2013.06.16 21:09 GMT+1 óra  
De azért nem szégyellitek magatok h nemtudtok letenni egy C++ vizsgát?
Hát a mi a f*szomért írok tutoriált?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Seeting - Törzstag | 2306 hsz       Online status #195156   2013.06.16 20:12 GMT+1 óra  
Köszi!
   
Pretender - Törzstag | 2498 hsz       Online status #195155   2013.06.16 19:50 GMT+1 óra  
PM ment. Arra felhívnám a figyelmeteket, hogy nem a mögötte lévő algoritmus a lényeg (azaz pl. a mátrixosat úgy csináltam meg vizsgán, hogy vektorom volt, meg vektorban vektor, meg ilyesmi, és lineáris kereséses volt ), hanem a c++ szintű megvalósítás. Azaz hogy hogyan használod ki a nyelvi elemeket, tudsz-e operátort írni, stb.

   
Seeting - Törzstag | 2306 hsz       Online status #195154   2013.06.16 19:16 GMT+1 óra  
Idézet
Pretender :
És maga a kérdés is valószínűleg ugyan amiatt kell Még mindig c++ vizsga? Esetleg el tudom küldeni a bimap implementációját, ha kell... Sőt, megcsináltam az egyik vizsgafeladatot is 4-esig (szimmetrikus mátrix)



Köszi, mindkettő kéne!
   
Pretender - Törzstag | 2498 hsz       Online status #195153   2013.06.16 19:01 GMT+1 óra  
És maga a kérdés is valószínűleg ugyan amiatt kell Még mindig c++ vizsga? Esetleg el tudom küldeni a bimap implementációját, ha kell... Sőt, megcsináltam az egyik vizsgafeladatot is 4-esig (szimmetrikus mátrix)

   
Asylum - Törzstag | 5440 hsz       Online status #195152   2013.06.16 18:52 GMT+1 óra  
1 oldallal előbb ugyanez volt a kérdés..

Kód:
template <typename A, typename B>
void foo()
{
}

template <typename T>
void foo<T, T>()
{
}
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Seeting - Törzstag | 2306 hsz       Online status #195147   2013.06.16 17:31 GMT+1 óra  
El lehet dönteni fordítási időben valahogy, hogy két template argumentum értke azonos? Mert ha van egy függvényem ami A-t ad vissza és B-t kér be, és egy olyan is ami B-t ad vissza és A-t kér be (ugyanazzal a névvel), akkor a két függvény ütközik egymással ha A==B.
   
proof88 - Törzstag | 528 hsz       Online status #195003   2013.06.12 21:35 GMT+1 óra  
Asylum - Törzstag | 5440 hsz       Online status #195000   2013.06.12 18:50 GMT+1 óra  
Kód:
class A { virtual ~A() {} };
class B { virtual ~B() {} };

class C : public A, public virtual B
{
};

C* c = new C();
B* b = c;

// c és b különbözik
if( c == b )
    printf("egyenlo\n"); // kiirja


A baj az volt, hogy bizonyos esetekben nem tudja feloldani (templates involved...) és hamist adott vissza az ==.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
proof88 - Törzstag | 528 hsz       Online status #194997   2013.06.12 15:28 GMT+1 óra  
Asylum: magyarázd már el lécci, mi volt annál a memóriacímes dolognál, mert nem teljesen értettem amit írtál. Amikor vmi objektumnak más volt a címe.
   
Asylum - Törzstag | 5440 hsz       Online status #194995   2013.06.12 14:01 GMT+1 óra  
Egynel tobb nevter pedig kimondottan fassag...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bolyzsolt - Törzstag | 607 hsz       Online status #194991   2013.06.12 12:57 GMT+1 óra  
Az a baj, hogy 3 szintes névteret használok Tudom, hogy C++-ban nem erre lettek tervezve a névterek, de eddig nem volt belőle probléma. Most meg emiatt using namespace xyz = x::y::z-t kell használjak, hogy ne kelljen annyit gépelni Mindegy, ehhez az egy osztályhoz kibírom (úgyis csak a main()-ben, azaz névtéren kívül van probléma).

   
Pretender - Törzstag | 2498 hsz       Online status #194990   2013.06.12 12:17 GMT+1 óra  
Miért, és a
Kód:
Namespace::Class

dologgal mi baj van?

Enélkül nem lesz szebb a kód, sőt...

   
Asylum - Törzstag | 5440 hsz       Online status #194988   2013.06.12 11:11 GMT+1 óra  
Ugy mukodhet hogy using MyEngine::Window
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bolyzsolt - Törzstag | 607 hsz       Online status #194987   2013.06.12 11:04 GMT+1 óra  
Igen, usingoltam, közben megcsináltam, most a Window implementációja jó, viszont a main()-ben továbbra is meg kell adni a névteret, ha használni akarom a Window-t, mert ugye using-gal nem tudja melyik Window-t használja, namespace-be meg nem rakhatom a main()-t...
Végülis nem nagy gond, de azért globális névtérbe ilyen typedefet írni... Erre nem mentség a C, simán lehetett volna prefixelni, mindegy... az X11 idősebb, mint én, úgyhogy nem pampogok.

@versio: köszi, de ennyire azért nem vagyok láma Közben megoldottam nagyjából...

   
versio - Tag | 659 hsz       Online status #194986   2013.06.12 10:59 GMT+1 óra  
bolyzsolt:

FInd / replace

az egesz projectben megkeresi az adott kifejezest , es lecsereli amire akarod, szep is lenne ha egy osztaly nev valtozast mind az ezer fileban kezzel kene kicserelni, ott szarnam ossze magam

viszont ovatosan kell vele banni , mert tud durva dolgokat muvelni, nem art elotte egy masolatot csinalni
   
Asylum - Törzstag | 5440 hsz       Online status #194985   2013.06.12 10:42 GMT+1 óra  
using namespace egy bug a c++ ban
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2519 hsz       Online status #194984   2013.06.12 10:40 GMT+1 óra  
Kivéve ha állandóan usingolod a névtereket, mert akkor olyan mintha nem is lenne.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Pretender - Törzstag | 2498 hsz       Online status #194983   2013.06.12 10:37 GMT+1 óra  
Mondjuk elég durva include graphod lehet, ha mindent újra kell fordítani attól, hogy egy headerbe belenyúlsz

Persze, lehet includeolgatni össze-vissza, de használhatsz forward deklarálást, ha ennyire fájdalmas a fordítási idő. Ráadásul az alap headerek egy idő után azért beállnak, fél évente 1x meg ki lehet beírni, hogy még 10mp-ig fordít.

szerk.:
Most láttam a szerket... miért kell átírni? Erre való a namespace...

   
bolyzsolt - Törzstag | 607 hsz       Online status #194982   2013.06.12 09:11 GMT+1 óra  
Nekem ilyen problémám nincsen, mert egyelőre nem olyan nagy a projekt. Viszont mivel fél percenként fordítok/debugolok, sokat számít, hogy ha belenyúlok valamibe egy gyakran használt osztályban, akkor a header ne módosuljon, és ne kelljen emiatt majdnem az egész projektet újrafordítani. Így csak egy-két .cpp-t újrafordít, linkel és kész.

Egyébként meg ha már a fordító sebességéről van szó: most Linuxon vagyok, és próbaképpen lecseréltem a GCC-t Clang-re, hát valami hihetetlen gyors GCC-t és MSVC-t is toronymagasan veri ezen a téren.

szerk.: Gyáá, mekkora jó, hogy Linuxon az X11 ablakai Window-nak vannak typedefelve (tök logikus, miért is lenne pl. XWindow... ), úgyhogy mivel nekem is van egy Window osztályom (egy külön névtérben), most írhatok át egy jó adag forráskódot...

Ezt a hozzászólást bolyzsolt módosította (2013.06.12 10:36 GMT+1 óra, ---)

   
proof88 - Törzstag | 528 hsz       Online status #194980   2013.06.12 08:36 GMT+1 óra  
amúgy lehet cpp fájlba is kifejteni a template osztályokat, max több a szívás vele
   
versio - Tag | 659 hsz       Online status #194979   2013.06.12 08:30 GMT+1 óra  
Pretender: nem hiszem hogy hatekonyabb lenne a nativ kod, legalabbis debugnal amikor nincs bekapcsolva semmilyen optimalizalas, mert olyan kodot a c# JIT fordito is csinal , sot jobbat,
ha meg bekapcsolod a full optimalizalast , nem tudsz debuggolni rendesen , es akkor a forditasi ido ugy elszall hogy nem 2 masodpercet varsz hanem 2 percet
   
Pretender - Törzstag | 2498 hsz       Online status #194978   2013.06.12 08:17 GMT+1 óra  
Kár hasonlítgatni a c#-al, mert teljesen máshogy működik a két fordító Én várok szívesen +2 mp-et, hogy cserébe lényegesen hatékonyabb natív kódot kapjak. Precompiled headerrel meg vigyázni kell, mert ha belenyúlsz, érdemes cleanelni, mert néha buta, és nem veszi észre, hogy történt változás...

Amúgy a legnagyobb probléma ilyen szempontból a templates osztályok, azokat ha akarod sem tudod cpp fájlokba írni Tehát nem tudsz mindent elrejteni.

   
versio - Tag | 659 hsz       Online status #194976   2013.06.12 07:58 GMT+1 óra  
bolyzsolt: sokat kuzdottem a forditasi ido optimalizalasaval , a programom kb 1000 osztaly, es 100 ezer sor

1. csak headerben programozva a forditasi ido korulbelul 20 masodperc
2. hasznalva a CPP filokat, a forditasi ido nagyon valtozo , akar 5 percig is forditott , attol fuggoen milyen melyen modositottam a programfat
3. csak header filokat hasznalva , par DLL-es libraryra osztas , es a precompiled header hasznalataval a forditasi ido 3 masodpercre csokkent

de ha fejre allok akkor sem tudom megkozeliteni se a c# forditasi idejet , ami konstans 1 masodperc
   
bolyzsolt - Törzstag | 607 hsz       Online status #194974   2013.06.12 07:43 GMT+1 óra  
Idézet
Pretender :
Miért? Headerben is megteheted, hogy először deklarálsz, aztán definiálsz, külön. Bár én meg pont jobban szeretem, ha egybe van. Persze nehezebben talál meg benne valamit az ember, de legalább nem kell ugrálni.


Igen. De amikor pl. van egy String osztály, aminek a headerje szinte mindenhova include-olva van, és 1 betű átírása miatt újra kell fordítani a komplett projektet, az úgy nem olyan menő Bezzeg ha csak a deklaráció van benne... Ahhoz ritkábban nyúl az ember

   
Pretender - Törzstag | 2498 hsz       Online status #194972   2013.06.12 06:23 GMT+1 óra  
@versio: ami csak Microsoft terméken fog futni

@Viperion: a c++ (gyak legalábbis, előadásra nem jártam) kurzus kifejezetten jó volt. A 90%-át már ismertem, de azért volt 1-2 újdonság. A tanárral meg konkrétan beszéltem a 11-es szabványról, illetve had ne mondjam, hogy nem egy tanár dolgozik mellette programozóként.

Persze ettől függetlenül nem tartom túl sokra az egyetemet, persze erről nem feltétlen ők tehetnek, hanem az előre meghatározott tanterv... minden esetre lehetne másképp is csinálni

   
versio - Tag | 659 hsz       Online status #194971   2013.06.12 06:05 GMT+1 óra  
tok mindegy mit tanitanak a tanarok a c++-nak amugyis megvannak szamlalva a napjai , a microsoft nativ c# forditon dolgozik , remelhetoleg egy dx12 vagy xna 5 tarsasagaban es parhuzamos apival vegyitve, es letrejon a tokeletes nyelv
   
Matzi - Szerkesztő | 2519 hsz       Online status #194969   2013.06.11 23:25 GMT+1 óra  
Viperion:
Tanítani senki nem tud, csak lehetőséget és segítséget adni arra, hogy tanulj. Ismerek olyat, aki az egyetemen tanult meg programozni. Tehát lehetséges, csak nem elég megelégedni a minimummal.

Amúgy meg miért lennének buták a tanárok, mert nem engednek egy szabványt? Nem te választod a feladatot, hanem ők. Jó hogy nem állsz le vitatkozni, hogy te inkább írnád pythonban, mert az jobb... Gondolod egy munkahelyen elkezdhetsz ugrálni, hogy te másik nyelvet szeretnél használni?

Az állítólag valahol olvasott valami statisztikát meg inkább nem is kommentálom.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Viperion - Tag | 540 hsz       Online status #194967   2013.06.11 22:22 GMT+1 óra  
Persze,hogy nem használható a vizsgán a c++11 még pedig azért mert buták a tanárok.
Azért van az,hogy a suli csak egy erős alapot tud adni(És még ez is ritka) mert nem tudom már hol olvastam de tudományos felmérések szerint az info tanárok kb 60,70 százaléka azért megy tanárnak mert nem képesek megállni a helyüket a munkahelyeken.

És most pro előtaggal rendelkezőktől fogok idézni.
"Programozni otthon és a munkahelyeken tanul meg az ember.És nem pedig a suliban!"

   
Asylum - Törzstag | 5440 hsz       Online status #194965   2013.06.11 21:49 GMT+1 óra  
Kb. három óra eszeveszett debuggolás után egy kibaszott nagy fasszágot találtam:

virtuális öröklés + polimorfizmussal ugyanannak az objektumnak más a memóriacíme (így utólag világos, hogy miért, de akkoris wtf...).

Hadd ne mondjam, hogy a két milliárd template mágián keresztül ez milyen elszállásokat tud okozni, amit a büdös életbe nem találsz meg. Általában egy C-style cast megoldja, de a konkrét esetemben nem. Kurvajó....most próbálok keresni workaroundot, dehát komolyan....az eszem megáll...

szerk.: pontosítok: nem az a baj, hogy különbözik a cím, hanem hogy a fordító valamikor transzparensen kezeli, valamikor meg nem...nem tudom reprózni, stackoverflowon elküldtek a picsába, ugyh megoldottam úgy h eltárolom az ősosztály pointerét is...

Ezt a hozzászólást Asylum módosította (2013.06.11 23:33 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretender - Törzstag | 2498 hsz       Online status #194961   2013.06.11 20:19 GMT+1 óra  
Azon gondolkoztam, hogy vannak ezek az __int32 és társai, azonban mi lenne, ha írnék helyette egy-egy osztályt ezekre? A littleendian-bigendian probléma jutott eszembe, mert az oké, hogy 32 bit lesz (elvileg), de mi van, ha azt egy másik rendszer "fordítva" ábrázolja? Vagy ez onnantól, hogy egyszer lefordult mindegy lesz? A fájlokat sem érinti?

   
Pretender - Törzstag | 2498 hsz       Online status #194956   2013.06.11 19:21 GMT+1 óra  
Miért? Headerben is megteheted, hogy először deklarálsz, aztán definiálsz, külön. Bár én meg pont jobban szeretem, ha egybe van. Persze nehezebben talál meg benne valamit az ember, de legalább nem kell ugrálni.

   
bolyzsolt - Törzstag | 607 hsz       Online status #194953   2013.06.11 18:26 GMT+1 óra  
Igen, ez közben nekem is eszembe jutott, de ez nem változtat a tényen, hogy átláthatóbbá válik a header, ha kidobom belőle az implementációt

   
proof88 - Törzstag | 528 hsz       Online status #194944   2013.06.11 14:03 GMT+1 óra  
ha publikus API-t csinálsz akkor a headerből az osztály nem publikus dolgait is ki kéne venni szóval ez nem lehet érv
   
bolyzsolt - Törzstag | 607 hsz       Online status #194941   2013.06.11 12:30 GMT+1 óra  
Pedig de Szeretek rendezett kódot írni, meg egyébként is lehet, hogy később a headerben definiált API elérhető lesz mások számára is, akkor pedig a definíciókon és a hozzá tartozó dokumentáción kívül nem kéne másnak lennie benne.

   
Pretender - Törzstag | 2498 hsz       Online status #194938   2013.06.11 11:19 GMT+1 óra  
Amúgy miért nem jó, hogy a headerben van? Nem olyan vészes ám az...

   
Asylum - Törzstag | 5440 hsz       Online status #194935   2013.06.11 11:05 GMT+1 óra  
Szerintem nincs mas. Igen VC specifikus.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bolyzsolt - Törzstag | 607 hsz       Online status #194931   2013.06.11 07:54 GMT+1 óra  
Idézet
Asylum :
?

A visual c++ nem eszi meg másképp a new és delete operator-t, de amúgy nem értem a kérdést.


Ez a kérdés... Ezen a kettőn kívül van még ilyen overload? És ha már említetted, akkor ez ilyen Visual C++ specifikus dolog?

   
Asylum - Törzstag | 5440 hsz       Online status #194922   2013.06.10 20:45 GMT+1 óra  
?

A visual c++ nem eszi meg másképp a new és delete operator-t, de amúgy nem értem a kérdést.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bolyzsolt - Törzstag | 607 hsz       Online status #194919   2013.06.10 19:47 GMT+1 óra  
Valaki fel tudja sorolni, hogy melyik operator overload definíciójának kell a headerben lennie? Amikor megírtam őket, valamelyiket muszáj volt a headerben kifejteni, és akkor a többit is odaírtam, most meg már nem emlékszem rá, melyik volt az, pedig ki szeretném írni a definíciókat a headerből.

   
Pretender - Törzstag | 2498 hsz       Online status #194915   2013.06.10 19:28 GMT+1 óra  
Nem is mondtam, hogy std::find... std::map::find-ot írtam, ami ugyan az, mint amit belinkeltél

Onnan, hogy nekünk c++ vizsgán elmondták / leírták, hogy a régi szabvány szerint kell dolgozni. A 11-es viszont nem a régi szabvány, at viszont csak c++11ben van.

   
Seeting - Törzstag | 2306 hsz       Online status #194911   2013.06.10 19:08 GMT+1 óra  
Szerintem nem kell std::find(), ezzel is jó:

http://www.cplusplus.com/reference/map/map/find/
   
Seeting - Törzstag | 2306 hsz       Online status #194908   2013.06.10 18:58 GMT+1 óra  
Nekem már megvan ez a tárgy, csak barátnőmnek segítek .
Közben már rájöttünk a megoldásra, köszi, de csak az .at() használatával. Honnan tudod, hogy az at()-et nem fogadják el?
   
Pretender - Törzstag | 2498 hsz       Online status #194907   2013.06.10 18:32 GMT+1 óra  
Na, táncsak nem Te is ELTE c++ vizsgán voltál?

Amúgy valszin annyi, hogy a mapnek a [] operátora nem const, mivel ha nem létezik a mapben, akkor be is szúr. Te viszont egy const objektumon keresztül akarod meghívni, ami nem lehetséges.

Használd az std::map::find-ot, ami visszaad egy iterátort. Figyelem, ELTE c++ vizsgán 11-es szabvány tudtommal nem használható, tehát az std::map::at felejtős.

   
Seeting - Törzstag | 2306 hsz       Online status #194906   2013.06.10 18:25 GMT+1 óra  
Erre a hívásra:

Kód:
...
const symmetric_associative_matrix<std::string, int> cdist = distances;
...
if (1826 == cdist.at( "London", "Helsinki" ) )
{...}


Meghívódik ez:

Kód:
type2 at(type1 a, type1 b) const
    {
        std::vector<par> * vektor;
        vektor = data[a];
        for (int i=0; i<vektor->size(); i++)
        {
            if (vektor->at(i).elso == b)
            {
                return vektor->at(i).masodik;
            }
        }
        return (type2)-1;
    }


És a data így néz ki:

Kód:
struct par {...}
std::map<type1, std::vector<par> * > data;


Mégis, erre a sorra, hogy

Kód:
vektor = data[a];


az at() const hívásban, ezt a hibaüzenetet kapom:

Kód:
error: passing 'const std::map<std::basic_string<char>, std::vector<symmetric_associative_matrix<std::basic_string<char>, int>::par, std::allocator<symmetric_associative_matrix<std::basic_string<char>, int>::par> >*, std::less<std::basic_string<char> >, std::allocator<std::pair<const std::basic_string<char>, std::vector<symmetric_associative_matrix<std::basic_string<char>, int>::par, std::allocator<symmetric_associative_matrix<std::basic_string<char>, int>::par> >*> > >' as 'this' argument of 'std::map<_Ke|


Tudna valaki segíteni, hogy miért?
   
Pretender - Törzstag | 2498 hsz       Online status #194845   2013.06.09 15:13 GMT+1 óra  
Nem a c++ tudás a kérdéses egy játék fejlesztésekor, hanem - ha nem külső engine-t használsz, mint pl. Unity-t - a technikák megtanulása / kitalálása, alkalmazása. A c++ csak egy eszköz ennek az elérésére.
Az IDE meg csak egy sokadrendű dolog, persze az nem árt, ha jó...

   
Viperion - Tag | 540 hsz       Online status #194843   2013.06.09 14:21 GMT+1 óra  
code blocks választottam.
Csak azért c++ zok,hogy ne menjek ki a gyakorlatból egyébként most azon vagyok,hogy az unity-t megtanuljam mert meg szeretnék bele gazdagodni bármennyire is hülyén hangzik. xD

Egyébként sokkal jobban érdekel a C++,Qt gyakorlása mint az unity.
Csak az a rossz ebben,hogy a C++,Qt vel soha nem fogok tudni semmi eladhatót létrehozni,nincs olyan jó fejem hozzá,hogy ez sikerülhessen.

Asylum most rohad*tul irigyellek.

   
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] [141]