Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
Bssldr
HV kasutaja
liitunud: 05.12.2009
|
01.07.2010 21:01:14
C++ ja #include |
|
|
Kuidas on siis õige #include'ga toimetada? Kas vajalikud failid peaks includema header failis või source failis? Esialgu panin kõik #include käsud header faili, kuid nüüd suuremate projektidega, kus esimene klass kasutab teist ning teine esimest, olen sunnitud isendimuutujate jaoks kasutama pointereid ja forward declaratione. Mis on soovituslik standard? Kas header faili panna kõik forward declarationid ning source faili kõik include käsud?
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
8 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
01.07.2010 22:08:11
|
|
|
Misasi on "isendimuutja"?
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
Bssldr
HV kasutaja
liitunud: 05.12.2009
|
01.07.2010 22:59:42
|
|
|
troglodyte kirjutas: |
Misasi on "isendimuutja"? |
Ma kahjuks ei tunne eestikeelseid programmeerimisalaseid termineid piisavalt hästi. Mõtlesin selle all sellist asja nagu 'member variable'. Isendimuutuja peaks tähendama 'member variable't, mis pole staatiline, seevastu klassimuutuja - staatiline.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
8 |
|
tagasi üles |
|
 |
andresv
HV kasutaja
liitunud: 06.12.2004
|
02.07.2010 11:07:25
|
|
|
Nu neid klasse mida kasutatakse .h failis included seal. Kõik ülejäänud included .cpp failis.
Siis ka kompileerimine kiirem, kui mõnda #include faili headerit muudad.
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
Supiplex
HV veteran

liitunud: 11.12.2002
|
02.07.2010 12:17:11
|
|
|
Üsna tulikuum soovitus on headeris mitte includida teisi headereid. Kõik include laused mis vähegi lubavad tuleb jätta ".cpp" faili, muidu nakatud kroonilise ropendamisega.
Header failis include lausest ei pääse paaril juhul -
1. nende klasside headerid millest sa pärid,
2. nende klasside headerid mis on sinu memberid (mitte pointeri kaudu vaid päris liikmena, sest siis peab kompilaator neid suutma konstrueerida),
3. äärmise vajaduse korral muu mudru.
Kui sinu klassis on mõni teine klass/struktuur pointeri kaudu esindatud, tuleb muidugi headerisse lisada forward declaration, aga mitte rohkem.
_________________ The young lady had an unusual list,
Linked in part to a structural weakness.
She set no preconditions. |
|
Kommentaarid: 38 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
34 |
|
tagasi üles |
|
 |
mesilased
HV kasutaja
liitunud: 31.07.2004
|
05.07.2010 12:52:10
|
|
|
Olen siiamaani kokku puutunud projektidega kus include-d on .h failis.
Tsyklisest include-misest lahti saamiseks kasuta include-guarde, e.g.
#ifndef __TESTCLASS_H
#define __TESTCLASS_H
#include yourstuff
class TESTCLASS
{
....
};
#endif
Seega inkluuditakse yhte klassi ainult yks kord. Erinevatel firmadel on küll erinevad koodistandardid, niiet oleneb ka sellest et kus t66tad ja mis ylej22nud rahva ootused selle suhtes on.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
8 |
|
tagasi üles |
|
 |
Bssldr
HV kasutaja
liitunud: 05.12.2009
|
06.07.2010 10:09:47
|
|
|
mesilased kirjutas: |
Olen siiamaani kokku puutunud projektidega kus include-d on .h failis.
Tsyklisest include-misest lahti saamiseks kasuta include-guarde, e.g.
#ifndef __TESTCLASS_H
#define __TESTCLASS_H
#include yourstuff
class TESTCLASS
{
....
};
#endif
Seega inkluuditakse yhte klassi ainult yks kord. Erinevatel firmadel on küll erinevad koodistandardid, niiet oleneb ka sellest et kus t66tad ja mis ylej22nud rahva ootused selle suhtes on. |
Selle asemel kasutan #pragma once.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
8 |
|
tagasi üles |
|
 |
mesilased
HV kasutaja
liitunud: 31.07.2004
|
06.07.2010 11:54:26
|
|
|
Bssldr kirjutas: |
mesilased kirjutas: |
Olen siiamaani kokku puutunud projektidega kus include-d on .h failis.
Tsyklisest include-misest lahti saamiseks kasuta include-guarde, e.g.
#ifndef __TESTCLASS_H
#define __TESTCLASS_H
#include yourstuff
class TESTCLASS
{
....
};
#endif
Seega inkluuditakse yhte klassi ainult yks kord. Erinevatel firmadel on küll erinevad koodistandardid, niiet oleneb ka sellest et kus t66tad ja mis ylej22nud rahva ootused selle suhtes on. |
Selle asemel kasutan #pragma once. |
#pragma once ei ole standardiseeritud, aga samas on efektiivne. Vahel soovitatakse koodi "portability" jaoks kasutada seda koos include guardidega.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
8 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|