játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5443
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:    2188
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]
proof88 - Törzstag | 528 hsz       Online status #104883   2009.02.18 15:10 GMT+1 óra  
lol, ezek szerint mi egyről beszélünk
De akkor miért emlékeztem throws()-ra? Asszem bekavart a Java kurzus ehh!
Szóval én a VC++2005-re mondtam h nem támogatja, de még 2008-cal nem próbáltam...
   
Asylum - Törzstag | 5443 hsz       Online status #104874   2009.02.18 11:38 GMT+1 óra  
jelzi a forditonak, hogy az a függvény csak T tipusu kivételt dobhat. pl. akkor hasznos amikor többfélét is el akarsz kapni pl.

Kód:
try
{
    sokfuggvenytmeghiv();
}
catch(int ex1) {}
catch(char ex2) {}
catch(sajattipus ex3) {}


meg hát a lúzernek is hasznos ha tudja hogy ez a bizonyos fv dobhat kiételt
ha egyáltalán nem dob kivételt akkor throw() simán.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
proof88 - Törzstag | 528 hsz       Online status #104872   2009.02.18 11:26 GMT+1 óra  
throw(T) - mire való?
Én VC++ 2005-ben poénból headerbe írtam egy metódus után olyat, h throws akármiexception; és erre azt mondta a fordító, hogy ő örül, hogy odaírtam, de nem foglalkozik vele, mert még nincs implementálva benne a cucc, hogy foglalkozhasson vele.
   
Asylum - Törzstag | 5443 hsz       Online status #104867   2009.02.18 10:19 GMT+1 óra  
én meg ezt nem hiszem el.
pl.- a korábban emlitett throw(T) -t nem tudja (mondjuk ezt a szabványban sem találom)

Ezt a hozzászólást Asylum módosította (2009.02.18 10:25 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
TPG - Tag | 3402 hsz       Online status #104865   2009.02.18 09:34 GMT+1 óra  
Idézet
Asylum :
márcsak azkéne hogy a g++ t a kukába dobjam. Föleg most hogy az új C++ szabványt is támogatja (még nincs minden feature implementálva). A vs viszont azt se tudja meg egy csomó mást se és mégcsak nemis szabványos. Egyedül az ide viszi el a hátán, mert az legalább kellemes.


Teljesen szabványos C++ compiler nem létezik tudtommal viszont az msvc8/9-et tartják a szabvány egyik legközelebbi implementációjának. Jó ideje használom és még nem sikerült olyan esetet előállítanom ahol nem úgy reagált ahogy kellett volna, pedig aztán elég csúnya kódokat etetek vele.
Reality is almost always wrong. - House

   
Asylum - Törzstag | 5443 hsz       Online status #104850   2009.02.18 05:22 GMT+1 óra  
márcsak azkéne hogy a g++ t a kukába dobjam. Föleg most hogy az új C++ szabványt is támogatja (még nincs minden feature implementálva). A vs viszont azt se tudja meg egy csomó mást se és mégcsak nemis szabványos. Egyedül az ide viszi el a hátán, mert az legalább kellemes.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104840   2009.02.18 03:08 GMT+1 óra  
Idézet
Csizmás Kandur :
Akkor ideje azt a g++ putty-os hülyeséget a kukába dobni és használni egy normális eszközt, például így.



Háááát
kep

Nem lehet hogy valami generate debug information bekapcsolódva maradt?

Ezt a hozzászólást sirpalee módosította (2009.02.18 03:15 GMT+1 óra, ---)
raytraceisten és übermedic
   
Csizmás Kandur - Tag | 436 hsz       Online status #104836   2009.02.18 01:43 GMT+1 óra  
Idézet
Asylum :
nincs default érték. Azért futtattam kétszer mert elöször még 81 et irt ki, szal random memóriaszemét kerül bele (nyilván a stack korábbi értéke).


Akkor ideje azt a g++ putty-os hülyeséget a kukába dobni és használni egy normális eszközt, például így.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
misi - Törzstag | 971 hsz       Online status #104794   2009.02.17 12:00 GMT+1 óra  
de ismerős... Imádom amikor 100-ra találom fel a spanyol viaszt, pedig tudom hogy tegnap is ez volt a szitu. Csak az a baj hogy ezzel el megy az idő.
   
Asylum - Törzstag | 5443 hsz       Online status #104785   2009.02.17 10:59 GMT+1 óra  


egyébként én is rendszeresen lehagyom az a lényeg hogy minél gyorsabban felismerd a hibádat pl. eszedbe jut, hogy ilyen már volt, mit is rontottam el akkor? stb.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
misi - Törzstag | 971 hsz       Online status #104768   2009.02.17 08:13 GMT+1 óra  
Idézet
Asylum :


nincs default érték. Azért futtattam kétszer mert elöször még 81 et irt ki, szal random memóriaszemét kerül bele (nyilván a stack korábbi értéke).

egyébként igen, a bool-t nem kell felszorozni, de ezis olyan amit megszoksz aztán mindenhol lehagyod


Teljesen igazad van ( miért ne lenne ). Lényeg hogy jelen esetbe nem okoz gondot, de azért inkább szorozzam fel, mert bajt nem csinál, de ha nem az annál inkább bezavarhat. Kössz a segítsége, és a tanítást.
   
Asylum - Törzstag | 5443 hsz       Online status #104734   2009.02.17 01:25 GMT+1 óra  


nincs default érték. Azért futtattam kétszer mert elöször még 81 et irt ki, szal random memóriaszemét kerül bele (nyilván a stack korábbi értéke).

egyébként igen, a bool-t nem kell felszorozni, de ezis olyan amit megszoksz aztán mindenhol lehagyod
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Joga - Törzstag | 1791 hsz       Online status #104732   2009.02.17 00:05 GMT+1 óra  
byte számról volt szó, nem default értékről...
(ಠ ›ಠ) Stewie!

   
Csizmás Kandur - Tag | 436 hsz       Online status #104731   2009.02.16 23:09 GMT+1 óra  
Idézet
misi :
De itt bool-ról van szó ami 1 amit felesleges felszorozni nem?


Jól mondod, a bool-nak true, azaz 1 a default értéke release módban.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
misi - Törzstag | 971 hsz       Online status #104723   2009.02.16 09:50 GMT+1 óra  
Idézet
Asylum :
C++ ban nincs default érték (kivéve vs debug módban). Arra is figyelj, hogy a memsetnek nem az elemszámot kell megadni hanem a bájtszámot.

példa:

Kód:
struct Alma
{
    int szin;
    int meret;
};

int main()
{
    Alma almak[10];

    memset(almak, 0, 10); // hibás
    memset(almak, 0, 10 * sizeof(Alma)); // helyes
    memset(almak, 0, 10 * 2 * sizeof(int)); // helyes de nem ajánlott

    return 0;
}


egyébként tudod egyáltalán hogy mit csinálsz? vagy csak úgy átírogatsz dolgokat.
Egyébként ezért is jobb a C++ -t megtanulni, mert ha elmész egy céghez és ott azt kérik, te meg eddig c# ban programoztál akkor fogsz rájönni, hogy az nem is programozás.



De itt bool-ról van szó ami 1 amit felesleges felszorozni nem?
   
Asylum - Törzstag | 5443 hsz       Online status #104690   2009.02.16 04:24 GMT+1 óra  
nemis gondolnád hogy mennyi minden nincs benne a szabványban (vagy nem ugy mint gondolod). Én általába gcc-vel leellenörzöm a kódot de mindent bekapcsolva mint állat.

gcc -w -Wall -Werror -pedantic -ansi

meg nemistudom még mi...mondjuk az iso szabvány bekapcsolásával már tonnányi forditási hiba szokott jönni
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
sirpalee - Tag | 1282 hsz       Online status #104689   2009.02.16 04:21 GMT+1 óra  
Pont nem ezekre gondoltam, de a pragma pack használata gondolom gcc alatt is engedélyezett (nem hiszem hogy nem támogatná).

Ami hasznos tud lenni a különböző fp modellek keverése. Ugye alapból fp:precise, de sok helyen sokat dob a kódon ha fp:fast-ot használsz. És ezt vagy globálisan állítod be (ami nem mindig jó megoldás) vagy lokálisan pragma-val. Persze lehet defineket használni akkor meg ugye teljesen portábilis.

Edit : Ugyanez vonatkozik pár __declspec-re. Nem szépek de van sok hasznos
raytraceisten és übermedic
   
gaborlabor - Moderátor | 4449 hsz       Online status #104688   2009.02.16 04:15 GMT+1 óra  
Hát amit eddig használtam/használok, azt csak 1-2 warning kiiktatására.
#pragma once helyett meg jó énnekem a hagyományos ifndef-define-endif -es megoldás is.
Azért nem szeretem a pragmákat, mert ha már minden tekintetben szabványos kódot írok, nehogy ez az egy apróság hiányozzon. Amíg megvan rá a lehetőségem, miért ne írjak portábilis kódot?

Aztán lehet, hogy egyszer majd belefutok valamibe, amit nem lehet máshogy megoldani, és akkor jó lesz.

   
sirpalee - Tag | 1282 hsz       Online status #104687   2009.02.16 04:00 GMT+1 óra  
Idézet
gaborlabor :
Idézet
sirpalee :
Ha létrehozol egy ilyen structot az 6 byte lesz, ha meg az extra chart akkor 8. Ha memseteled mindeképpen a sizeof kell mellé.


És én nem ugyanezt írtam tán?



Okok, én is elnézhetek dolgokat. Bár este volt már és csak a kávé tartotta bennem a lelket.

Érdemes #pragma-kat használni, van benne néhány nagyonhasznos dolog, ami sokat tud segíteni.
raytraceisten és übermedic
   
gaborlabor - Moderátor | 4449 hsz       Online status #104686   2009.02.16 03:58 GMT+1 óra  
Idézet
sirpalee :
De megegyezik.


De ha nem használsz #pragma-t, akkor nem, mert - mint te is írtad, a default nem 1.
Én mondjuk nem használok #pragma-kat, de nem is kell , mert ezt szerintem be lehet állítani a fordító beállításainál is.

Idézet
sirpalee :
Gondolom nem halottál a pragma packról . Nézz utána.


Utánanéztem.

Idézet
sirpalee :
Ha létrehozol egy ilyen structot az 6 byte lesz, ha meg az extra chart akkor 8. Ha memseteled mindeképpen a sizeof kell mellé.


És én nem ugyanezt írtam tán?

   
sirpalee - Tag | 1282 hsz       Online status #104679   2009.02.15 23:29 GMT+1 óra  
Idézet
Csizmás Kandur :
És ha elmész céghesz, ahol a PLC-t asm-ben kell kódolni rájössz, hogy a C++ nem is programozás.
Amúgy C#-al több esély van elhelyezkedni, mert elég sok helyen üzleti fejlesztés van, nem driver programozás. Akik meg C++ al tolják vérprofik és nem fognak felvenni úgyse.

misi: Sok sikert, de szerintem vegyél elő pár alap C/C++ könyvet és tanulgasd pár hónapig (vagy inkább pár évig), mert ez így csak vergődés. &-t átírod *-ra, meg ilyenek.Ez azért nem ilyen egyszerűen megy.



C++ egy nagyságrenddel jobb portfólió elemnek mint a c#. Aki c++-t érti az általában a c#-ot is . És a kétfajta programozó fizetése között is van egy nagyságrendi különbség.
raytraceisten és übermedic
   
Asylum - Törzstag | 5443 hsz       Online status #104678   2009.02.15 23:20 GMT+1 óra  
De én tudok asm-ben programozni Legalábbis nem vagyok teljesen noob hozzá szal olyan nagy meglepetés nem érne
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Csizmás Kandur - Tag | 436 hsz       Online status #104676   2009.02.15 22:35 GMT+1 óra  
Idézet
Asylum :
Egyébként ezért is jobb a C++ -t megtanulni, mert ha elmész egy céghez és ott azt kérik, te meg eddig c# ban programoztál akkor fogsz rájönni, hogy az nemis programozás.


És ha elmész céghesz, ahol a PLC-t asm-ben kell kódolni rájössz, hogy a C++ nem is programozás.
Amúgy C#-al több esély van elhelyezkedni, mert elég sok helyen üzleti fejlesztés van, nem driver programozás. Akik meg C++ al tolják vérprofik és nem fognak felvenni úgyse.

misi: Sok sikert, de szerintem vegyél elő pár alap C/C++ könyvet és tanulgasd pár hónapig (vagy inkább pár évig), mert ez így csak vergődés. &-t átírod *-ra, meg ilyenek.Ez azért nem ilyen egyszerűen megy.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
sirpalee - Tag | 1282 hsz       Online status #104672   2009.02.15 15:22 GMT+1 óra  
Idézet
gaborlabor :
Nem egyezik meg.

Kód:
struct STRUCT
{
unsigned short a;
char b;
unsigned short c;
};


sizeof(STRUCT) nekem 6. Ha belerakok még egy char-t, akkor meg 8, tehát valahogy próbálja úgy memóriahatárra igazítani, hogy optimálisabb legyen a címzés, másolás....



De megegyezik.

Gondolom nem halottál a pragma packról . Nézz utána. Ha létrehozol egy ilyen structot az 6 byte lesz, ha meg az extra chart akkor 8. Ha memseteled mindeképpen a sizeof kell mellé.

De állítsd be pragma pack 1-re, és máris jó lesz. (aminek az alapértéke 4 talán)
raytraceisten és übermedic
   
Asylum - Törzstag | 5443 hsz       Online status #104671   2009.02.15 14:35 GMT+1 óra  
érdekes

Kód:
STRUCT s;

s.a = 1; // implicit konverzio short-ra
s.b = 2;
s.c = 3; // implicit konverzio short-ra


én pl. ezt ugy forditanám, hogy

Kód:
...
sub ESP, 5;
mov [ESP], AX
mov [ESP + 2], BL
mov [ESP + 3], CX
...


persze nem ESP-vel hanem EBP-vel a mov-okat.

Ezt a hozzászólást Asylum módosította (2009.02.15 14:43 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
gaborlabor - Moderátor | 4449 hsz       Online status #104670   2009.02.15 14:33 GMT+1 óra  
Nem egyezik meg.

Kód:
struct STRUCT
{
unsigned short a;
char b;
unsigned short c;
};


sizeof(STRUCT) nekem 6. Ha belerakok még egy char-t, akkor meg 8, tehát valahogy próbálja úgy memóriahatárra igazítani, hogy optimálisabb legyen a címzés, másolás....

   
Asylum - Törzstag | 5443 hsz       Online status #104669   2009.02.15 14:25 GMT+1 óra  
Inkább azért nem ajánlott mert ha átirok valamit az Alma-ban akkor tuti hogy elfelejtem a memset-ben is átirni.

szerk.: szerintem megyegyezik...legalábbis a forditás során. A sizeof() ugyanis forditási idöben értékelödik ki.

Ezt a hozzászólást Asylum módosította (2009.02.15 14:35 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
gaborlabor - Moderátor | 4449 hsz       Online status #104668   2009.02.15 14:11 GMT+1 óra  
memset(almak, 0, 10 * 2 * sizeof(int)); // helyes de nem ajánlott

Ezzel az a gond, hogy a struct mérete nem mindig (sőt nagyon sokszor nem) egyezik meg az adattagok méretének összegével, a memóriacímzési optimalizálás miatt. Szóval szerintem a fenti kód nemcsak, hogy nem ajánlott, de sokszor hibás is.

   
Asylum - Törzstag | 5443 hsz       Online status #104667   2009.02.15 14:03 GMT+1 óra  
C++ ban nincs default érték (kivéve vs debug módban). Arra is figyelj, hogy a memsetnek nem az elemszámot kell megadni hanem a bájtszámot.

példa:

Kód:
struct Alma
{
    int szin;
    int meret;
};

int main()
{
    Alma almak[10];

    memset(almak, 0, 10); // hibás
    memset(almak, 0, 10 * sizeof(Alma)); // helyes
    memset(almak, 0, 10 * 2 * sizeof(int)); // helyes de nem ajánlott

    return 0;
}


egyébként tudod egyáltalán hogy mit csinálsz? vagy csak ugy átirogatsz dolgokat.
Egyébként ezért is jobb a C++ -t megtanulni, mert ha elmész egy céghez és ott azt kérik, te meg eddig c# ban programoztál akkor fogsz rájönni, hogy az nemis programozás.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
misi - Törzstag | 971 hsz       Online status #104665   2009.02.15 13:27 GMT+1 óra  
Na alkottam valamit.
a menmset-eket átraktam a class deklarációjához ( remélem így hívják )
a virtual bool OnEvent(SEvent event)-et kicseréltem virtual bool OnEvent(const SEvent& event)
levettem a csillagot ( azok a kedvenceim xd )
-> eket átraktam . -ra

Így már nem szál el hibával ( bár még mindig nem azt csinálja amit akarok ).

Ja és nem szeretnék áttérni c++-ra azért nem .net be használom. Látom azért figyelmes vagy, hogy vágod 2D volt az előző kérdésem, de csak egy menünek akartam hátteret berakni. ( Sikerült is, átméretezve, csak azt egy patch kéne ami segít simítani az átméretezett kép felszínét, hogy ne legyen csúnya amit nem sikerült még megoldani ) 3D-s dolgon munkálkodom, és magával az Irrlicht el eddig nincs olyan sok bajom. C++ -al se csak azért a C# után elég kényelmetlen.
   
Csizmás Kandur - Tag | 436 hsz       Online status #104663   2009.02.15 13:12 GMT+1 óra  
Idézet
misi :
Üdv. Marhára nem vágom hogy ez a C++ mi a rákot akar... Egy egyszerű tömböt sem akar rendesen létrehozni. ( Bár érdekes hogy már hoztam vele létre és úgy ment, minden ugyan az pedig ) . C# után kimondottan idegesítő, és marhára nem értem ebben a kódban mi a baja:
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=25808#25808

Kód:
Unhandled exception at 0x00467e10 in Game.exe: 0xC0000005: Access violation writing location 0xccccccd0.


Én azt veszem ki ebből, hogy nem adja meg alap értéknek minden elemhez a false-t. ( C# ba ez alapból megvan... ) de a memset állítaná be nem? Azt próbáltam for-al is az összes elemnek megadni a false értéket de úgy se jó. Egyszerűen nem értem...


Irrlicht-nek van .NET-es megfelelője is, de ha csak sima 2D játék a cél lehet ez a motor többet hátráltat, mint amennyit segít. (főleg C++ al)
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
misi - Törzstag | 971 hsz       Online status #104662   2009.02.15 13:12 GMT+1 óra  
Azt is kipróbáltam, és rendesen létrehozza a tömböt 255 elemmel. Csak egyiknek sincs értéke.

De valószínű hogy én rontok el valamit.
   
sirpalee - Tag | 1282 hsz       Online status #104661   2009.02.15 13:05 GMT+1 óra  
Elég biztos hogy te rontasz el valamit .

A threadben szépen le van írva, de a hiba az lesz valszeg, hogy :

bool keys[sizeof(irr::EKEY_CODE)] ;

helyett

bool keys[irr::KEY_KEY_CODES_COUNT] ;

Kellene neki. Az első azt adja meg hogy az EKEY_CODE-nak mekkora a mérete (ami valszeg egy enum, szóval 4 bájt), míg nem 4 hanem akkora array kéne mint ahány key van.

És persze a loop-ban is ezt kéne használni.
raytraceisten és übermedic
   
misi - Törzstag | 971 hsz       Online status #104660   2009.02.15 12:58 GMT+1 óra  
Üdv. Marhára nem vágom hogy ez a C++ mi a rákot akar... Egy egyszerű tömböt sem akar rendesen létrehozni. ( Bár érdekes hogy már hoztam vele létre és úgy ment, minden ugyan az pedig ) . C# után kimondottan idegesítő, és marhára nem értem ebben a kódban mi a baja:
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=25808#25808

Kód:
Unhandled exception at 0x00467e10 in Game.exe: 0xC0000005: Access violation writing location 0xccccccd0.


Én azt veszem ki ebből, hogy nem adja meg alap értéknek minden elemhez a false-t. ( C# ba ez alapból megvan... ) de a memset állítaná be nem? Azt próbáltam for-al is az összes elemnek megadni a false értéket de úgy se jó. Egyszerűen nem értem...
   
proof88 - Törzstag | 528 hsz       Online status #104251   2009.02.09 13:09 GMT+1 óra  
Egyébként köszi mindenkinek a helpet!
Tök jól működik, nem is értem mit bénáztam ilyen alap dologgal.
   
kiskami - Tag | 265 hsz       Online status #104069   2009.02.06 01:15 GMT+1 óra  
Értelek, akkor teljesen jó az extern-es megoldás.
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
proof88 - Törzstag | 528 hsz       Online status #104039   2009.02.05 12:30 GMT+1 óra  
kiskami: Eddig azért nem írtam le, mert próbáltam palástolni, hogy mivel bénázok.
wglext.h-ban és glext.h-ban vannak függvénymutatók és típusok. #ifdef-ek miatt a függvénymutatók alapjáraton nem elérhetőek, de #define-vel elérhetővé tehetők. Én viszont máshol akartam eredetileg deklarálni őket, az említett típusokkal. Ez nem megy. Semmi más nem fog hozzáférni, mert ez az egész dll-ben lenne, az inicializálást pedig az az osztály végzi el, ami akkor jön létre, mikor a felhasználó a programjából meghívja az egyetlen exportált függvényt. De tehetném az osztályba is őket, de úgy tudom, hogy gyorsabb, ha nem osztálymetódusként hívom meg, hanem csak "simán".
Asylum: amit leírtál azt tudom.
Csizmás Kandur: nem szeretek gányolni, ezért kérdeztem meg. C++-ban mindig akkor jönnek elő a problémáim, amikor "ez használja ezt, az azt, ez meg ezt a kettőt, stb." szitu jön elő és a linker szól h ez így nem jó. Egyébként mentségemre, már megvan mind2 kötete a C++ prog. nyelvnek Stroustrup-tól, de még nem igazán sajátítottam el mindent belőlük.
   
kiskami - Tag | 265 hsz       Online status #104026   2009.02.05 10:26 GMT+1 óra  
proof88: ha leírod, hogy mi a lótökére használod, honnan és miért ezeket a függvénymutatókat, akkor biztos lenne ötlet "szebb" megoldásra.
Ami engem zavar a dologban - így látatlanban - az az, hogy nem kontrollált a hozzáférés ezekhez a csodaváltozókhoz, vagyis csak boldog és boldogtalan módosíthatja őket, az inicializációjuk is lehet gázos. Ezért én biztos valami osztályba rejteném (facade), és annak interfészén keresztül használnám őket.
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
Asylum - Törzstag | 5443 hsz       Online status #104003   2009.02.05 06:59 GMT+1 óra  
nem kell oop.

X. szabály) headerben NEM deklarálunk változókat.
megoldás:

valami.cpp
Kód:
int alma;


minden más cpp ami használja az almát:
Kód:
extern int alma;


névütközésekre figyelj. javaslom ebben a kitüntettt esetben a hungarian notationt (de én is csak ilyenkor használom) g_nAlma

najó ha mindenáron oop megoldást akarsz akkor

valami.h
Kód:
class Valami
{
public:
    static int Alma;
};


valami.cpp
Kód:
#include "valami.h"

int Valami::Alma;


minden más
Kód:
#include "valami.h"

Valami::Alma = xyz;

Ezt a hozzászólást Asylum módosította (2009.02.05 07:07 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Csizmás Kandur - Tag | 436 hsz       Online status #103996   2009.02.05 04:27 GMT+1 óra  
Idézet
proof88 :
Miért? Ezek a függvénymutatók bármelyik osztálynak kellhetnek és futási időben kérem le a függvények címét. Ilyen néven biztosan nincs más függvény egyéb .h-ban.
De Te hogy csinálnád?


Az a szerencséd, hogy C++ ban tudsz gányolni. OOP megoldást találj ki, az átláthatóbb.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
   
proof88 - Törzstag | 528 hsz       Online status #103986   2009.02.05 02:06 GMT+1 óra  
Miért? Ezek a függvénymutatók bármelyik osztálynak kellhetnek és futási időben kérem le a függvények címét. Ilyen néven biztosan nincs más függvény egyéb .h-ban.
De Te hogy csinálnád?
   
kiskami - Tag | 265 hsz       Online status #103983   2009.02.04 22:52 GMT+1 óra  
ha jól értem a problémát, akkor - extern (a c-s időkből), egyébként meg én ilyen "pőrén" nem raknék ki függvénymutatókat (se) globális térbe
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
proof88 - Törzstag | 528 hsz       Online status #103982   2009.02.04 18:26 GMT+1 óra  
őhh elég láma gondom van, de úgy nem akarom megoldani, ahogy meg tudnám oldani...

Szóval van egy dll, benne sok osztály.
A sok osztály sok külön .h és .cpp fájlban van. Viszont egyik osztály használja mondjuk a marcsi.h-t, amiben függvények vannak deklarálva, tehát az egyik osztály .h-jában includeolom a marcsi.h-t.
Idáig működött a dolog.
Viszont amint egy másik osztály .h-jában is includeolom a marcsi.h-t, akkor ugat a linker, h azok a függvények a marcsi.h-ból már definiálva vannak az egyik osztály.obj-ban.
Kérdés, mit csináljak azokkal a függvényekkel, hova tegyem őket, h jó legyen...
Természetesen minden .h-ban ott van a #pragma once, vagy ha úgy tetszik: #ifndef xyz.h #define xyz.h tartalom #endif.
Őőő most hogy elgondolkodom, nem is az a baj, hogy függvények vannak a marcsi.h-ban, hanem függvénymutatók! Tehát hogyan oldjam meg, hogy egy marcsi.h-ban deklarált változóra ne ugasson a linker, ha több h-ban includeolom a marcsi.h-t.

Egyébként a megoldásom, amit nem akarok használni a hívási overhead miatt az az, hogy a legközpontibb osztályban vannak ezek a változók és a többi osztályban mutató mutat erre a központi osztályra és úgy hívja meg őket h központiosztály->függvényneve, csak ez így nem tetszik...

szerk.: most jutott eszembe h ha staticok lennének akkor működne a dolog, de most nem próbálom ki és amúgy is azért jöttem ide h okos ötleteket halljak.
   
sirpalee - Tag | 1282 hsz       Online status #103799   2009.02.01 10:34 GMT+1 óra  
Idézet
Wolfee :
http://www.cplusplus.com/doc/tutorial/templates.html
stabil c++ és egy jó adag kitartás kell hozzá.



Ez meglepően jó összefoglaló Ebből már bárki el tud indulni.
raytraceisten és übermedic
   
Wolfee - Törzstag | 1336 hsz       Online status #103797   2009.02.01 10:26 GMT+1 óra  
http://www.cplusplus.com/doc/tutorial/templates.html
stabil c++ és egy jó adag kitartás kell hozzá.
FZoli jóváhagyásával XD

   
raymond13 - Tag | 17 hsz       Online status #103796   2009.02.01 10:25 GMT+1 óra  
Vagy valaki tanítsom meg templatezni. Plííííííííízzzzz

   
raymond13 - Tag | 17 hsz       Online status #103795   2009.02.01 10:22 GMT+1 óra  
Vagy ha vmi magyar templates szöveget tudnátok külden az jóó vóna (de télleg)

   
raymond13 - Tag | 17 hsz       Online status #103794   2009.02.01 10:19 GMT+1 óra  
Hallóóóó!!!!!
Valaki tudna nekem regélni a Template programozásról?
Mire használatos, mennyi tudás szükségeltetik hozzá stb:.......
Előre is kössszz

   
Mystro - Tag | 60 hsz       Online status #103677   2009.01.30 10:02 GMT+1 óra  
Hali

Egy matematikai problémám van, de nem az elmélettel, hanem a megvalósítással:

Adott egy test, és egy másik test (kamera) aminek 2 pontja van, a második pontjának koordinátái megegyeznek a test koordinátáival.
valahogy így:
link
link2
Olyan kódrészlet kellene ami a test koordinátáiból, a test y tengely szögelfordulásából, a test és kamera távolságából, és a kamera első pontjának magasságából kiszámítja a kamera első pontjának x,z koordinátáit.

ezek adottak:
( float típusúak)
Kód:
c.X       // test koordinátái
c.Y
c.Z
cf.Y      //test szögelfordulása (fok)
d.Y       //kamera magassága
s         //kamera-test távolsága


ezeket számítja ki:
Kód:
d.X
d.Z


Ha valaki megírná nekem azt megköszönném
   
Asylum - Törzstag | 5443 hsz       Online status #103571   2009.01.28 11:32 GMT+1 óra  
hát igen de ha pl. végigjátszod 12 és 8 ra akkor

12 8
4 8
4 4

és itt visszatér tehát sosem lesz 0

szerk.: tudom már mi a baj; az hogy az a template akkor is kiértékelödik ha nem teljesül a feltétel igazad van, meg kell szokni hogy itt forditási idöben torténik minden.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
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]