C++ és Visual C++ között mi a külömbség?
Ha esetleg nem tud angolul, mert vannak ilyen emberek ám:
A Visual C++ a Microsoft állítása szerint egy "modern" C++ verziót követ, de ki van egészítve a nyelv a windowsos kezelőfelület elemeinek objektumként definiálására szolgáló lehetőségekkel, és persze a programfejlesztő felület segíti ezek elhelyezését és beállítását a tervezőablakokban. A gond az, hogy a C++ nem a Microsoft terméke, és tudtommal vannak kis kompatibilitási gondok, attól függően, hogy pontosan melyik C++ verzióval hasonlítod össze.
Na várjatok gyerekek, mert itt vannak gondok.
Először is tisztázzuk, hogy van:
- natív kód (ennek az a lényege, hogy az operációs rendszeren kívül ne kelljen sok más dolog a program futtatásához)
- nem natív kód (na itt pont az lesz a lényeg, hogy az operációs rendszeren még pluszban ki kell alakítani egy réteget, így a kódodat közvetlenül nem az operációs rendszer, hanem ez az új réteg fogja kezelni).
Ha .NET-ről van szó, az előbbit hívjuk nem menedzselt (angolul unmanaged) kódnak (merthogy ehhez a .NET-nek semmi köze nincs), míg az utóbbit hívjuk menedzselt kódnak (angolul managed; merthogy ennek a végrehajtásáért pont hogy a .NET fog felelni - na jó, egészen pontosan a CLR).
Ami a C++ nyelvet illeti, annak van egy kis történelme. Ez az egész C++-dolog egy Bjarne Stroustrup nevű emberke találta ki. Aztán odáig fajultak a dolgok, hogy nem úszta meg a szabványosítást. Azóta a C++ rengeteg fejlődésen ment át. A mai napig ezt a szabványosított C++-t értjük akkor, ha valaki a C++ nyelvről beszél.
Na de közben jöttek a Microsoft-ék a Windows-zal, és hát arra az ablakos programok fejlesztése nem volt valami egyszerű dolog. Az első nagyon nagy dobásuk a form designer-rel megküldött Visual Basic volt (na mit tippelsz, miért "Visual" Basic?). Hatalmas sikerének és elterjedésének oka egyszerűen abból állt, hogy ezelőtt vagy 3 napot elcsesztél csak a GUI megtervezésére, VB-vel és a designerrel viszont 10 perc alatt összekattintgattad. Na ezt jó lett volna, ha C++-ban is meg lehet csinálni. Így hát kijött a Visual C++ is - amit összegyúrva a Visual Basic-kel egy programcsomagba lőn Visual Studio. Igaz, itt meg kell említeni, hogy Microsoft-ék C++ fordítója nem tudott mindent, ami az akkori szabványban le volt írva, ráadásul még saját dolgokat is behozhattak, nehogy szabványos legyen már. Ekkor még ugye mind a Visual Basic, mind a Visual C++ natív kódot állított elő.
De ekkor kitalálták, hogyha a Java-nak ennyire jól megy, jó lenne valami saját, hasonló dolog Windows-ra, ami lehetőleg némileg jobb a Java-nál. És lőn .NET. (Csak épp azzal cseszték el az egészet, hogy csőlátással és zárt forráskóddal csak a Windows-ra adták ki, ami miatt még a mai napig sem terjedt el annyira, mint a Java. Ezt így most 2016-ra valamilyen szinten sikerült korrigálni a .NET kódjának megnyitásával, de valljuk be, elég későn sikerült idáig eljutni.) Ekkor jött az a nagy ihlet, hogy innentől kezdve beszüntetjük a natív kódot előállító Visual Basic-et és kiadjuk a menedzselt kódot előállító Visual Basic fordítót (gondolom nem kell megemlítenem, hogy a népszerűsége rohamosan csökkenni kezdett), és bejött a szintén menedzselt kódot előállító fordító és hozzá a nyelv, a Visual C# (ami a mai napig is a .NET "mindent vivő Joker nyelve"). Egyedül a Visual C++ úszta meg azt, hogy megszüntessék a natív kódot előállító fordítót, de persze behozták mellé az új, menedzselt kódot előállító képességet is, hogy .NET-re is lehessen vele fejleszteni.
Mindenesetre itt egy dokumentáció, ami azt taglalja, hogy a mostani Visual C++ fordító hogy viszonyul a most érvényben lévő C++ szabványokhoz:
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!