Kezdőoldal » Számítástechnika » Programozás » Miért nem kapok hibaüzenetet...

Miért nem kapok hibaüzenetet az alábbi kódban?

Figyelt kérdés

int main()

{

SimpleCat &rCat = TheFunction();

int age = rCat.GetAge();

std::cout << "rCat is " << age << " years old!\n";

return 0;

}


SimpleCat &TheFunction()

{

SimpleCat Frisky (5,9);

return Frisky;

}


Az osztálydefiníció most nem számít.

A lényeg az, hogy olyan objektumra mutat a referenciám, ami a függvényből való kilépés után megszűnt, de a fordító nem dob ki rá hibaüzenetet.



2017. jan. 31. 11:01
 1/4 A kérdező kommentje:

Még annyi, hogy a függvény deklarálva lett előzőleg, azt a sort kihagytam:

SimpleCat &TheFunction();

2017. jan. 31. 11:03
 2/4 anonim ***** válasza:

Ez C++ nem C#, nem kapsz minden kis baklövésedért szép kis hibaüzenetet.

Arról nem beszélve, hogy a lokális változó sem szűnik meg azonnal biztosan (eleve mitől szűnne?) csak pont, hogy nem lesz rá garancia, hogy még létezik.

2017. jan. 31. 14:28
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:

Mivel a program szintaktikailag helyes (a szabvány nyelvi szabályait betartja), ezért a fordító le tudja fordítani. Ennek ellenére tartalmazhat szemantikai hibákat amik a program hibás működéséhez vezetnek. A példádra egyébként szoktak figyelmeztetést dobni a fordítók.


Olvasmány:

[link]

2017. jan. 31. 21:40
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Köszönöm a válaszokat!
2017. jan. 31. 22:42

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!