Citat:
chupcko: Kao po obicaju Nedeljko ne kapira ono sto je bitno, u onom kodu je neocekivano da C nema konstante koje su tipa char :) barem stariji C.
Citat:
Nedeljko: Pa, ovde je isto u pitanju samo standard.
Bukvalna vrednost 'a' je po C++ standardu tipa char, a po C standardu tipa int. Samo, za to se koristi makro __cplusplus.
Nije mi baš jasno šta to Nedeljko ne kapira, ali chupcko ne kapira da C ima konstante koje su tipa char i da se pišu ovako:
Code (c):
const char ch = 'a';
a da je 'a' zapravi literal. U C-u će da radi i ovo:
Unija je problematična jer nema garancije da se ispravno čita ono što tamo piše, odnosno da čitaš ispravno polje. Naravno, to može biti odgovornost programera. Kod OOP-a (za koji je C++ pravljen) je poenta da se što više provera vrši od strane sistema.
Za štednju memorije služi nasleđivanje. Niko ti ne brani da imaš pokazivač na strukturu tipa A, a iz te strukture izvedene razne druge strukture, pa da identifikuješ tip itd.
Navedi use case gde je unija značajna, a da imaš OOP.
Oćeš da rešavaš probelem C-ovski? Nema problema. One unije koje rade u C programima, radiće i u C++ programima.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.