![]() |
C++ segítségre lenne szükségem.
Sziasztok!
Ezt a topic-ot azért nyitottam, mert egy kis segítségre lenne szükségem. Meg szerétnék kicsit barátkozni a C++ nyelvvel. Ennek érdekében vásároltam 2 könyvet, töltöttem le néhány jegyzetet, de az első lépést csak nem sikerült megtennem az objektumok használata felé. Itt van rögtön a legelső péda. Ezt a könyvet a C++ 2.0-s UNIX-os változatához írták. Egy ingyens windows-os, a Borland által kiadott 5.5-ös, fapados fordítót sikerült szereznem hozzá, aminek ugyebár kompatibilisnek kellene lennie, de csak nem fordul le. Sajnos a könyv nem tartalmazza összefüggően a teljes forrást, ami tovább nehezíti a dolgot, további hibákra adva lehetőséget, de igyekeztem szépen egymás után írni a részeket és ez lett az eredménye: IntArray.h fájl tartalma: const int ArraySize = 24; class IntArray { public: IntArray(int sz = ArraySize); IntArray(const IntArray&); ~IntArray() { delete ia; } IntArray& operator = (const IntArray&); int& operator[] (int); int getSize() { return size; } protected: int size; int *ia; }; IntArray.cpp fájl tartalma: IntArray::IntArray(int sz) { ia = new int[size]; for (int i = 0; i < sz; i++) ia[i] = 0; } IntArray::IntArray (const IntArray &iA) { size = iA.size; ia = new int[size]; for (int i = 0; i< size; i++) ia[i] = iA.ia[i]; } IntArray& IntArray::operator = (const IntArray &iA) { delete ia; size = iA.size; ia = new int[size]; for (int i = 0; i < size; i++) ia[i] = iA.ia[i]; return *this; } int& IntArray::operator[] (int index) { return ia[index]; } proba.cpp fájl tartalma: #include "IntArray.h" #include "IntArray.cpp" main () { IntArray ia; } Egyébként állítólag lehet egy előzetes fordítást is végezni az include állományon, ami nem sikerült, így ezt a részt kihagytam. Na most próbáltam a következő paracsot: bcc32.exe -If:\borland\bcc55\include\ -Lf:\borland\bcc55\lib\ proba.cpp Erre a következő hibaüzenetet kaptam: Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland proba.cpp: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external 'IntArray::IntArray(int)' referenced from F:\BORLAND\BCC55\BIN\PROBA.OBJ Tudna valaki segíteni abban, hogy mit rontottam el? Elvileg csak másolásról van szó... Közben már megkaptam a megoldást. Volt egy elírás (azt javítottam itt is) és az IntArray.cpp-t is includdal be kellett szurni, ez volt a hiba. Letörölném az egész topicot, de nem tudom. Na sebaj, hátha érdekel valakit vagy kedvet kap hozzá... |
ugyan nem vagyok nagy c++ mágus, de ezt én is hiányoltam;)
amúgy alapvetően a legtöbb c++ iró platformon letudod futtatni soronként a programot, és legtöbbször kiderül,hogy hol van szintaktikai hiba, esetleg,hogy hol hiányzik neki vmi:) nekünk anno ez volt az első amit tanitottak, hogy mindig ha végzünk egy résszel, soronként futtasuk, és rögtön kibukik a szög a zsákból:D |
Valaki tudna linux alá ilyen fejlesztő platformot ajánlani?
|
Quote:
talán a gedit a legbarátságosabb. :D |
Ez a program így biztosan működik?
Amúgy tudom ajánlani a dev C++ nevű kis progit, az is fapados, de van benne minden ami kellhet a hibák felderítéséhez, és ingyenes. |
Quote:
Egyébként ez a példa azt mutatja be, hogyan lehet a C++-ban olyan adattípust létrehozni, amelyet aztán ugyanúgy lehet használni, mintha az a nyelv részét képezné. Tehát lehet használni benne pl. a következő szintaktikát: IntArray a1, a2; a1 = a2; Nyilván ez nem egy kiforrot példa, a későbbiekben javított rajta a könyv írója. De nagyon szépen szemlélteti a pascal-hoz szokott szememnek, hogy a C++ mennyivel másabb. |
Quote:
|
Quote:
ha nem csal az emlékezetem, olyasmit mondtak a tanárok akkor, hogy nem létezik (?használható?) fejlesztői környezet. de nem teszem rá a nyakam. :) |
Quote:
Quote:
A NetBeans-t Java-hoz találták ki fejlesztő környezetnek és teljesen szabadon használható és úgy tudom, van Linux alá is és a 6.5-ös változattól kezdve C++-ra is használható. Azt találtam a Google-ban, hogy Windows alá vannak jobbak is, nem érdemes a NetBeans-t használni. De mivel Java-hoz és C++-hoz is kéne és Java-hoz ez már fent van, jó lenne beállítani C++-hoz is. Még mindig a Borland 5.5-ös fordítóját használom, ezt viszont nem sikerült a NetBeans-el összekombinálni. Tudna valaki segíteni abban, hogy Windows alá milyen ingyenes, C++ fordítót érdemes letölteni és hogyan kell beállítani, hogy a NetBeans-el együtt működjön? Aért kérdezek ilyen hülyeségeket, mert nem vagyok programozó, nem is tanultam programozni, viszont a munkámhoz szükséges a programozás, mert a munkahely a programfejlesztőknek milliókat fizet egy-egy használhatatlan apró fejlesztésért, a keret el is fogyott, így meg nem lehet dolgozni. |
Quote:
Én csak linux alatt szoktam programozni (hazudok mert C#-ot win alatt:D) Környezetek: Java: Eclipse C: Anjuta C++: gedit ezt így szoktam meg, de szinte biztos vagyok benne hogy az eclipse és az anjuta is viszi a c++ -:) |
Quote:
Nem tudom, hogy a helytelen beállítás-e az oka, de az Eclipse nálam még a kulcsszavakat sem ismerte fel, nemhogy a metódusokat... Szóval kevesbbre jutottam vele, mint ahol már tartottam a másikkal. :( |
Quote:
Ezenkívül, az eclipse-hez tölts le c++ -os plugint, és aztán tudsz csinálni c++ projektet. De win alatt a visual studio expressz verziója is jó, az ingyenes és van benne c++ fordító is. Ha meg csak kódot szerkesztessz, notepad++ A fordító és a keretrendszer nem fog megtanítani a C++ azt bizony neked kell megtanulnod, ha meg már megtanultad, akkor nem jelenthet gondot, hogy nem kínálja fel a dolgokat, mert csak írod, mert tudod mit kell írni:D Tudtommal a GNU csinált Win alá is C++ compliert, linux alatt meg g++ a neve :) |
Quote:
|
Quote:
Találtam egyébként egy leírást a beállításhoz, csak Linux emulátort is kell a C++ puginnal együtt telepíteni, egy bizonyos Cyrwin nevűt, ha jól értelmeztem. Nem hiszem, hogy valaha eljutok arra a szintre, hogy note-paddal nekem menne, ezért lenne fontos a keretrendszer. Sokat segít azoknak, akik nem tudnak programozni. :) Birkózom még vele, hátha összejön. Ha meg nem, akkor marad a notepad... |
Újjabb problémám van a C++-al kapcsolataban.
Eddig a Borland C++-át használtam. Figyelmeztettek, hogy az nem követi a szabványt, ezért gondok lehetnek vele. Most szeretnék lefordítani egy, a Borland C++-ban figyelmeztetés nélkül leforduló programomat a GNU g++-ával, de nem megy. Ezért leegyszerűsítettem annyira, hogy a program már semmit se csinálna, de a hibajelenséget produkálja: ------------------------- data.h #ifndef _DATA_H #define _DATA_H #include <string.h> //using namespace std; class data { public: std::string s; // vagy "string s;", ha a "using namespace std;" be van kapcsolva. data(); data(const data& orig); virtual ~data(); private: }; #endif ------------------------- data.cpp #include "data.h" data::data() { } data::data(const data& orig) { } data::~data() { } ------------------------- main.cpp #include <stdlib.h> #include "data.h" int main(int argc, char** argv) { data p; p.s = "peoba"; cout << p.s << "\n"; return (EXIT_SUCCESS); } ------------------------- A GNU a következő hibaüzenetet adja: In file included from data.cpp:2: data.h:10: error: using-declaration for non-member at class scope data.h:10: error: expected `;' before "s" Hogyan lehet ezt úgy átírni, hogy GNU-val leforduljon? |
All times are GMT +1. The time now is 16:15. |
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Design partly based on Hódító's design by Grafinet Team Kft.
Contents and games copyright (c) 1999-2020 - Queosia, Hódító
Partnerek: Játékok, civ.hu