Toster Napisano Listopad 14, 2008 Zgłoś Share Napisano Listopad 14, 2008 Do wyznawcow C++ Zmuscie wasz turbo elastyczny kompilator aby lyknal cos takiego: TCommunicationNode = class abstract(TCommandListener) procedure Connect; virtual; abstract; end; TClientNode = class(TCommunicationNode) procedure Connect; overload;override; procedure Connect(const initState: TClientState); reintroduce;overload; end; niach niach... I'm bad Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Listopad 15, 2008 Zgłoś Share Napisano Listopad 15, 2008 #include <iostream> TCommunicationNode = class abstract(TCommandListener) procedure Connect; virtual; abstract; end; TClientNode = class(TCommunicationNode) procedure Connect; overload;override; procedure Connect(const initState: TClientState); reintroduce;overload; end; int main() { return 0; } ||=== console, Release ===|/home/jason/Desktop/tmp/console/main.cpp|2|error: expected constructor, destructor, or type conversion before '=' token| /home/jason/Desktop/tmp/console/main.cpp|3|error: declaration does not declare anything| /home/jason/Desktop/tmp/console/main.cpp|3|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|4|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|6|error: expected constructor, destructor, or type conversion before '=' token| /home/jason/Desktop/tmp/console/main.cpp|7|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|7|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|8|error: 'procedure' does not name a type| /home/jason/Desktop/tmp/console/main.cpp|8|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|8|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|9|error: expected constructor, destructor, or type conversion before ';' token| ||=== Build finished: 11 errors, 0 warnings ===| Niestety, składnia Delphi nie jest kompatybilna Link do komentarza Udostępnij na innych stronach More sharing options...
Nvm Napisano Listopad 15, 2008 Zgłoś Share Napisano Listopad 15, 2008 Z tego co wiem, Toster ma włączone ignorowanie Jasona, więc pozwolę sobie wkleić jego wypociny CYTAT(Jason @ sob, 15 lis 2008 - 17:49) #include <iostream> TCommunicationNode = class abstract(TCommandListener) procedure Connect; virtual; abstract; end; TClientNode = class(TCommunicationNode) procedure Connect; overload;override; procedure Connect(const initState: TClientState); reintroduce;overload; end; int main() { return 0; } ||=== console, Release ===|/home/jason/Desktop/tmp/console/main.cpp|2|error: expected constructor, destructor, or type conversion before '=' token| /home/jason/Desktop/tmp/console/main.cpp|3|error: declaration does not declare anything| /home/jason/Desktop/tmp/console/main.cpp|3|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|4|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|6|error: expected constructor, destructor, or type conversion before '=' token| /home/jason/Desktop/tmp/console/main.cpp|7|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|7|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|8|error: 'procedure' does not name a type| /home/jason/Desktop/tmp/console/main.cpp|8|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|8|error: expected constructor, destructor, or type conversion before ';' token| /home/jason/Desktop/tmp/console/main.cpp|9|error: expected constructor, destructor, or type conversion before ';' token| ||=== Build finished: 11 errors, 0 warnings ===| Niestety, składnia Delphi nie jest kompatybilna Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Listopad 15, 2008 Zgłoś Share Napisano Listopad 15, 2008 I teraz włączy blokowanie Nvm-a:D Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Wosiedem Napisano Listopad 15, 2008 Zgłoś Share Napisano Listopad 15, 2008 Do wyznawcow C++ Zmuscie wasz turbo elastyczny kompilator aby lyknal cos takiego: [delphi] TCommunicationNode = class abstract(TCommandListener) procedure Connect; virtual; abstract; end; TClientNode = class(TCommunicationNode) procedure Connect; overload;override; procedure Connect(const initState: TClientState); reintroduce;overload; end; $,śyiZ6ĄzZaxśk+n3zx Ś #include struct asd { unsigned char a,b; }; int main() { asd a; *((unsigned int*)&a) = 0xff00; printf("%d, %d\n", a.a, a.B); return 0; }[/cpp] Pozdrawiam, vo7 (; Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Listopad 15, 2008 Autor Zgłoś Share Napisano Listopad 15, 2008 too easy type TRec = record a, b: byte; end; var c : PWord; rec: TRec; begin c := PWord(@rec); c := $ff00; end; -zj^'rhs3 wś)-*g^('łł7^bppf '&Ób7G&ćsŚ&VvÓEŁb33FFb33łŚVćC Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Nvm Napisano Listopad 15, 2008 Zgłoś Share Napisano Listopad 15, 2008 Jestem jak najbardziej zwolennikiem Pascala ale przy pomocy STL'owej mapy można to zrealizować Tylko, że to będzie dużo szybsze Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Listopad 15, 2008 Zgłoś Share Napisano Listopad 15, 2008 w c++ nie ma, że tablie zaczynają się od czegoś innego niż 0, ale można zrobić własną klasę z przeładowanym operatorem [] Ja też wole Delphi;) Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Brainer Napisano Listopad 15, 2008 Zgłoś Share Napisano Listopad 15, 2008 Z tego, co się orientuję, takie coś nie przejdzie w C++: case X of 0..10: writeln('x'); 11: writeln('z'); 11..30: writeln('d'); end; Chodzi mi o przedziały w instrukcji case. .: Brainer :. patrick.nusbaum@gmail.com Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Listopad 16, 2008 Zgłoś Share Napisano Listopad 16, 2008 @Toster C++ to nie zabawka i dużo bardziej pokomplikowany język: class DELPHICLASS TCommunicationNode; class PASCALIMPLEMENTATION TCommunicationNode : public TCommandListener { typedef TCommandListener inherited; public: virtual void __fastcall Connect(void) = 0 ; public: /* TObject.Create */ inline __fastcall TCommunicationNode(void) : TCommandListener() { } /* TObject.Destroy */ inline __fastcall virtual ~TCommunicationNode(void) { } }; class DELPHICLASS TClientNode; class PASCALIMPLEMENTATION TClientNode : public TCommunicationNode { typedef TCommunicationNode inherited; public: virtual void __fastcall Connect(void)/* overload */; HIDESBASE void __fastcall Connect(const TClientState* initState)/* overload */; public: /* TObject.Create */ inline __fastcall TClientNode(void) : TCommunicationNode() { } /* TObject.Destroy */ inline __fastcall virtual ~TClientNode(void) { } }; Wygląda niezgrabnie ale można to nieco uporządkować. HIDESBASE, PASCALIMPLEMENTATION i DELPHICLASS to makra na odpowiednie __declspec, dla 100% kompatybilności z Delphi. Dlatego wygląda to jak wygląda. Bez "binarnej" kompatybilności mogłoby ładniej. @Brainer: małe uprzyjemnienie (ale łatwe do zastąpienia) Jedyne poważne co tak naprawdę możecie wymienić na kontrę do C++, na chwilę obecną to metody anonimowe, ale to i tak nie na długo bo C++0x nadciąga, a z nim wyrażenia lambda (o ile w niektórych już nie ma). Ale w Delphi chodzi o coś innego B)! PS. No i C++ nie ma jeszcze #PASEMIT soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Listopad 16, 2008 Autor Zgłoś Share Napisano Listopad 16, 2008 HNB: EEE Blad. To co podajesz to nie standard jezyka C++ tylko "wymysl" borlanda aby byla zgodnosc z delphi, but nice try. @Toster C++ to nie zabawka i dużo bardziej pokomplikowany Hmm.. doprawdy ? Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Listopad 16, 2008 Zgłoś Share Napisano Listopad 16, 2008 Delphi tez nie jest zgodne ze standardami więc mamy remis . Nie wolno oszukiwać! Fakt faktem to co napisałem to C++. Może dialekt, ale zawsze C++. Tak samo ta składnia nie zadziała w FreePascalu, TMT Pascalu, PaxPascalu, GNU Pascalu, PascalScripcie czy Virtual Pascalu. Więc powinieneś dac możliwość porównania do składni C++ Buildera. I jakie Borland! Nazwa której nie wolno wymawiać ! HNB: EEE Blad. To co podajesz to nie standard języka C++ tylko "wymysl" borlanda aby byla zgodnosc z delphi, but nice try. Hmm.. doprawdy ? Zresztą po co zakłamywać rzeczywistość? C++owcy nie potrzebują reintroduce dla metod i abstract w odniesieniu do klasy, to tylko taki umilacz. A virtualne metody abstrakcyjne jak były w C++ tak są. PS. C++ jest tak brzydki, że żadne abstract mu nie pomoże ! soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Listopad 16, 2008 Zgłoś Share Napisano Listopad 16, 2008 Z tego, co się orientuję, takie coś nie przejdzie w C++: if (X>=0&&X<=10) cout << 'x' << endl; else if (X==11) cout << 'z' << endl; if (X>=11&&X<=30) cout << 'd' << endl;%[ ĘipŚBÓC7G&ćrsfwCłÓfffCłÓsgVCb3 #śgVCłÓÓsgVCb3#śgVCłfwCłÓfffCłÓ3sgVCśBb3#śgVCłsgVC ść2gVCłŚ6WBfCfCs Chodzi mi o przedziały w instrukcji case. a po co Ci przedziały w instrukcji case jak można napisać: if (X>=0&&X<=10) cout << 'x' << endl; else if (X==11) cout << 'z' << endl; if (X>=11&&X<=30) cout << 'd' << endl;%[ ĘipŚBÓC7G&ćrsfwCłÓfffCłÓsgVCb3 #śgVCłÓÓsgVCb3#śgVCłfwCłÓfffCłÓ3sgVCśBb3#śgVCłsgVC ść2gVCłŚ6WBfCfCs I jak sobie w Delphi odróżnisz char od stringa ?? Ale i tak to wszystko to są takie proste niuanse, które można obejść.... takie pierdoły. Każdy będzie argumentował za swoim, chociaż HNB jest w tym temacie najbardziej obiektywny. Np. w C++ przeładowanie funkcji odbywa się bez jakichś tam specjalnych dyrektyw, nie trzeba mu wszystkiego pisać, bo niektóre zachowania mogą być przeprowadzane automatycznie. A tu mi ktoś pewnie napisze, że Delphi właśnie automatycznie rozpoznaje, czy mu trzeba podstawić char'a, czy stringa.... No i tak w kółko... To całe Delphi maniactwo wynika z tego, że ludzie często od tego zaczynali i nie widzieli siebie pracującego w innym środowisku, niektórym to zostało, tak jak Tosterowi, tyle że poznał C++, ale i tak dalej jest po stronie Delphi, właśnie poprzez pierwotne przyzwyczajenia. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Listopad 16, 2008 Autor Zgłoś Share Napisano Listopad 16, 2008 Delphi tez nie jest zgodne ze standardami więc mamy remis HNB tylka ja napisalem ze w Delphi tak mozna a nie w Object Pascalu Pozatym wydaje mi sie ze Delphi byl przed OP ale moge sie mylic. reintroduce ma kolosalne znaczenie bo umozliwia przedefiniowanie metody virtualnej a nie przysloniecie innej metody. jason: kilka if elsow wolniej sie wykona niz case/switch bo jest optymalizowane do szukania bisekcja na etapie kompilacji co do pierwotnych przyzwyczajen to zaczynalem w basicu i asmie pozenij uczylem sie C/C++ a pozniej Delphi i javy i zostalo mi delphi Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Listopad 16, 2008 Zgłoś Share Napisano Listopad 16, 2008 No cóż, każdy ma swoje preferencje. Mój kolega z roku który dobrze myśli (algorytmicznie itp.) pisze aplikacje okienkowe w PHP (kod ich wygląda prawie jak WinAPI bo ma takie coś zwane WinBinder'em). Dlaczego tak robi? Pewnie dlatego, że ma pełno dostępnych funkcji, które by normalnie musiał sam pisać... Nie wiem, czy programowanie w Javie by mu na lepsze nie wyszło Fortran też jest jeszcze używany głównie przez funkcje inżynierskie w nim dostępne Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Listopad 16, 2008 Zgłoś Share Napisano Listopad 16, 2008 HNB tylka ja napisalem ze w Delphi tak mozna a nie w Object Pascalu Pozatym wydaje mi sie ze Delphi byl przed OP ale moge sie mylic. reintroduce ma kolosalne znaczenie bo umozliwia przedefiniowanie metody virtualnej a nie przysloniecie innej metody. jason: kilka if elsow wolniej sie wykona niz case/switch bo jest optymalizowane do szukania bisekcja na etapie kompilacji co do pierwotnych przyzwyczajen to zaczynalem w basicu i asmie pozenij uczylem sie C/C++ a pozniej Delphi i javy i zostalo mi delphi Co było pierwsze? Chyba sami autorzy do końca nie wiedzą ^^. Zresztą Delphi i Object Pascal używa się zamiennie i to nie jest błąd. A reintroduce i tak jest tylko dla zwiększenia czytelności i mogłoby go nie być (ale dobrze, że jest B)), więc z tym kolosalnym znaczeniem bym nie przesadzał. soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.