Ha egy függvényt nem deklarálok csak definiálok a main előtt mert ugye így lefordul a kód, akkor a main előtti definiált függvény amelynek deklarációja nincs az egyenlő azzal mintha inline kulcsszót használtam volna?
Egyfelől az inline kulcsszó csak javaslat, a legtöbb fordító jobban el tudja dönteni, hogy mit érdemes inlineosítani, mint te.
Másfelől az a definiálás egyben deklarálás is. Mint az, hogy leírod egy függvényben, hogy
int x;
azzal deklaráltad az int típusú x nevet, és definiáltad is.
De ha én egy függvényt definiálok és deklarálok is egyszerre akkor az egyenlő azzal mintha külön deklaráltam volna az inline kulcsszóval.
Ha egyszerre történik a definiálás és a deklarálás is akkor egy függvény helyben kifejtett(tehát inline) példa:
void x() { } ez inline igaz?
Ez itt egyben deklarálás és definiálás is és láthatjuk,hogy ez így egyenlő azzal mintha használtam volna az inline kulcsszót.
Akkor ez a kérdésem:
Ha egy függvényt külön deklarálok és külön definiálok pl:
void x();
int main() {
return 0;
}
void x() {}
Akkor ez nem inline.
De ha így csináltam volna:
void x() { //helyben kifejtett.
}
int main() {
return 0 ;
}
Akkor ez inline ugye igazam van mert ez így helyben kifejtett.
Igazam van?Jól tudom?
De ha van egy osztályom például:
class P {
public:
void S() {} //Ez inline és nem használtam az inline kulcsszót.
};
Ahogy a fenti példámban sem.
Ti nem értitek.
Akkor miért van az,hogy a fenti példámban nem lesz inline a függvény mikor egyből a deklarációja után írtam a definícióját?
Ha pedig létrehozok egy osztályt akkor pedig inline lesz miért.
Ez igaz,hogy az inlenenál a hívás helyét jelenti nem pedig a definiálást.De a definícióban kell megmondania a programozónak,hogy inlineosítani szeretné e a függvényt(Az az egy javaslatot teszek a fordítónak így).
A könyv írta,hogy ha egy függvénynek a deklarációja után írod a definícióját akkor az egyenlő azzal mintha külön dekláráltad volna az inline kulcsszóval.
Egy függvényt csak kétféleképpen lehet inlineosítani.
Az egyik az inline kulcsszó a másik ha osztályon belül definiálom.
Ha osztályon kívül definiálom akkor az nem számít inlinenak.
Ezt nemtudta kinyögni valamelyik.
Mindig felkel mennem a prog.hu ra mert itt aztán várhatok bármilyen kielégítő válaszra.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!