Kezdőoldal » Számítástechnika » Programozás » Hogyan lehetne ezt c++-ban...

Hogyan lehetne ezt c++-ban leprogramozni?

Figyelt kérdés

Készítsen programot, amely bekér két számot, majd növekvő sorrendben kiírja azokat.

addig megvan hogy bekérek egy a és egy b számot csak utána hogy kell?


2014. okt. 8. 20:16
1 2 3
 11/22 anonim ***** válasza:
100%

Ja C stílusban nyomod a C++-t.


printf("%d, %d", a, b);

Vagy fordítva értelemszerűen.

2014. okt. 8. 20:40
Hasznos számodra ez a válasz?
 12/22 anonim ***** válasza:
100%

Ja és rossz a scanf használat.

scanf("%d",a); helyett

scanf("%d",&a);

És ugyanígy a b-nél is.

2014. okt. 8. 20:42
Hasznos számodra ez a válasz?
 13/22 A kérdező kommentje:
köszi
2014. okt. 8. 20:45
 14/22 anonim ***** válasza:
53%

Ehh...

Mi a szart csináltál eddig programozásból?

Facebookot?

2014. okt. 9. 07:05
Hasznos számodra ez a válasz?
 15/22 anonim ***** válasza:
Legközelebb C kérdésnél ne írd oda, hogy C++, mert megtévesztő.
2014. okt. 9. 13:46
Hasznos számodra ez a válasz?
 16/22 anonim ***** válasza:
A C++-nak részhalmaza a C. Teljesen kompatibilis, szóval ez tényleg C++ program, fölösleges ebbe belekötni. Aki eléggé ismeri a C++-t az ismeri az alap C-s függvényeket is.
2014. okt. 9. 15:04
Hasznos számodra ez a válasz?
 17/22 anonim ***** válasza:

> A C++-nak részhalmaza a C.

Nem. A C++ fordító megeszi a C szintaktikát, illetve kompatibilitási okok miatt lehetőség van használni a régi C-s függvénykönyvtárat is, de sohasem része annak.


Már ha megnézed, hogy maga a struct kifejezés is teljesen mást jelent.


Ha valaki úgy gondol rá, hogy a C része a C++-nak, vagy hogy a C++ egy továbbgondolt C, akkor komoly hibákat követ el. Példul keveri a malloc és a new-t stb.

2014. okt. 9. 17:09
Hasznos számodra ez a válasz?
 18/22 anonim ***** válasza:

"Ha valaki úgy gondol rá, hogy a C része a C++-nak, vagy hogy a C++ egy továbbgondolt C, akkor komoly hibákat követ el. Példul keveri a malloc és a new-t stb."


Akkor a C++ kigondolója is tévedett, nem rossz... Mert szerinte az.


"C++ was designed to provide Simula’s facilities for program organization [Dahl,1970] together with C’s efficiency and flexibility for systems programming [Kernighan,1978]."


"The language was not called D, because it was an extension of C, because it did not attempt to remedy problems by removing features, and because there already existed several would-be C successors named D." [Bjarne Stroustrup: A Tour of C++]


Másrészt igen keverheti a C-s függvényhívásokat a C++-osal és nem lesz semmi hiba. Semmi nem tiltja a malloc használatát, ha leírtál egy new-t.

2014. okt. 9. 20:25
Hasznos számodra ez a válasz?
 19/22 anonim ***** válasza:

> Akkor a C++ kigondolója is tévedett, nem rossz... Mert szerinte az.


Rendben, a továbbgondolt C valóban igaz, de egy teljesen más nyelvről van szó, igaz hason ló szintaktikával.


Az idézetek pedig nem arról szólnak, hogy a C++ C alapokon nyugodna, annak kiterjesztése lenne. Inkább arról, hogy a Simula lehetőségeit és a C ismert sziktaktikáját és memória kezelését összeházasítva, egy új nyelvet alkossanak.


> Másrészt igen keverheti a C-s függvényhívásokat a C++-osal és nem lesz semmi hiba. Semmi nem tiltja a malloc használatát, ha leírtál egy new-t.


Nem, ahogy azt sem tiltja hogy végtelen ciklust, vagy nullával való osztást csinálj, a hülyeségre nincs megoldás, pedig egy free és egy delete összekeverése például szarvashiba.

2014. okt. 10. 15:59
Hasznos számodra ez a válasz?
 20/22 anonim ***** válasza:

new vs malloc


* A malloc a heap-ből allokál memóriát a new pedig a 'free store'-ból

Ref: [link]


* A malloc void* al tér vissza, a new egy tipizált mutatóval.


* A malloc NULL-t ad vissza hiba esetén, a new nullptr-t vagy kivételt dob.


* A malloc-nál a lefoglalni kívánt memória méretét byte-ban adjuk át. A new esetében fordítás időben számolódik i a Type-ID-ből


* A malloc-nál tömb esetén magunk számoljuk ki a teljes méretet, és figyelnünk kell az align-ra. A new-nak van egy array verziója, ami fordítás időben határozza meg mindezt (helyesen).


* realloc-nál nincs implicit copy-construktor hívás.


* Kevés memória esetén, a new-nál átadhatunk egy allocator-t, hogy kezelje ezt. mallocnál nincs ilyen lehetőség.


* a malloc/free nem terhelhető túl, a new delete operátor túlterhelhető.


Más nyelv, más igények. A C-s memória kezelő függvényeket NEM SZABAD belekeverni a C++ kódunkba. Egyik legjobb ok erre az, hogy a free() nem hív destruktort. WPA-nál már a malloc jelenléte hibát okoz mert bugnak számít.

2014. okt. 10. 16:12
Hasznos számodra ez a válasz?
1 2 3

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!