Skocz do zawartości

Maly flame :)


Toster

Polecane posty

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 :D

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

#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 :P

Link do komentarza
Udostępnij na innych stronach

Z tego co wiem, Toster ma włączone ignorowanie Jasona, więc pozwolę sobie wkleić jego wypociny :P

 

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 :P

 

Link do komentarza
Udostępnij na innych stronach

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

@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

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

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 :D ??

 

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

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 />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

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 :D

Link do komentarza
Udostępnij na innych stronach

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

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...