C++ vs Object Pascal po raz kolejny, ale jednak nieco inacze

0

Tak sie zlozylo ze bede musial nieco poprogramowac w czyms co jest okrojonym C. Wiec sobie czytam dzielo p.t. Standard C++ Bible, zeby sie polapac. I tak sobie czytam (na razie wstepne rozdzialy) i nie moge dojsc czym tak naprawde C++ rozni sie od Object Pascala. Mam oczywiscie na mysli roznice zasadnicze, a nie begin..end vs. {}. Wiekszosc struktur jezyka wydaje sie podobna jesli nie identyczna.

Pewne triki w C (np operatory +=, ? :) zapewne skracaja czas pisania programu, choc moga obnizac czytelnosc. Czy maja wplyw na wydajnosc samego programu? Chyba niekoniecznie, bo roznica miedzy funkcja a operatorem jest zatarta przez kompilator, ktory liczne funkcje (rowniez w Delphi) traktuje jako inline - a wiec de facto operatory.

W C zauwazam wieksza swobode w deklarowaniu zmiennych: np deklaracja polaczona z inicjalizacja, deklaracja w praktycznie dowolnym miejscu kodu. Ale czy to znow nie obniza czytelnosci?

Zreszta w Delphi tez mozna uzyc deklaracji polaczonej z incjalizacja, tyle ze nazywa sie to 'assignable typed constant' (ale, jak przyznaje help, they behave essentially like initialized variables), no i trzeba przestawic kompilator:
{$J+}
//=Project&gtOptions&gtCompiler&gtAssignable typed constants
const
x : integer = 100;
begin
inc(X); *dziala!!!
Button1.Caption:=IntToStr(X); *wychodzi 101
end;

Inna specyficzna cecha C, ktora zauwazylem, sa zmienne lokalne dla bloku {}.
Czyli

int k = 1;
if(k == 1)
{
int k = 5; * to jest inne k
}

  • wiec tu k nadal jest rowne 1

Ale powiedzmy sobie szczerze: nazywanie roznych zmiennych znajdujacych sie tak blisko siebie w kodzie takimi samymi nazwami to prosta droga to pomylki i ciezkiego do znalezienia bledu.

Wiec pytanie do ludzi, ktorzy naprawde dobrze znaja oba jezyki. Gdzie jest zasadnicza roznica?
--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

Hehe no wlasnie gdzie te wielkie roznice? Polecam do poczytania ten topic :
http://warsztat.pac.pl/cgi-bin/forum/YaBB.cgi?board=general;action=display;num=1020956040;start=0--W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.

0
  1. Jeśli chodzi o szablony (template) to tak naprawde to pisząc konkretny program
    pod winem w ogóle tego nie zastosujesz.
  2. Bardzo poważna wada delphi lub object pascala (nie wiem) to brak oparcia na zasobach, co za tym idzie rozmiar plików.
  3. Przeciążenie operatorów jest pomocne jak piszesz własne klasy, w konkretnym programie możesz zrobić zwykłą funkcje.
  4. W C++ bardzo ułatwiają życie standardowe biblioteki typu lista,stos,kolejka itp.
    Szkoda że delphi tego nie ma, choć można zrobić własną klase.
  5. Brak w C++ pętli do..witch która jest pomocna jak masz doczynienia z
    komponentami.
  6. W C++ łatwiej operować wskaznikami.
0

Co do tablic w VC++ też można twożyć tablice od dowolnego miejsca, tylko po co?
Argument że C++ jest lepszy bo jest bliższy systemowi jest ŚMIESZNY.
Co użytkownika obchodzi w jakim języku został napisany program którego używa.
Program ma chodzić i tyle. To że programista ma takie " widzimisie" a nie inne to
kwestia gustu.

Jak dla mnie to żadnych różnic.
Jest takie przysłowie o baletnicy...

0

znowu ja.
Deklaracja zmiennych w dowolnym miejscu cholernie ułatwia.

0

marcin napisał:
znowu ja.
&gtDeklaracja zmiennych w dowolnym miejscu cholernie ułatwia.

Pisanie z cala pewnoscia. Ale czy czytanie??--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

Zalety deklaracji zmiennych w c++ (w zwyklym c nie ma takiej swobody) docenilem gdy piszac przez dluzszy czas w c++ musialem napisac cos w OP. Piszac dluzsza procke meczylo mnie ciagle wracanie do bloku var.
Operatory typu += zniejszaja czytelnosc tylko do pewnego czasu, po prostu kwestia wprawy i wplywow starych przyzwyczjen.
Piszac w delphi nie spotkalem sie takze ze strukturami typu unie czy pola bitowe, w inny sposob sa realizowane lancuchy znakowe. W c++ nie ma dosc sztucznego podzilu na procedury i funkcje,a te ostatnie w inny sposob zwracaja wartosc. W c++ operacje wskaznikowe nie sa ograniczone tylko do zmiennych dynamiczcnych. Lepiej zostaly rozwiazane takze mechanizmy obiektowe (wg mnie przynajmniej).
Slyszalem ze dosc duze roznice sa w sposbie tworzenia kodu wynikowego, ale to moze niech sie wypowie ktos bardziej kompetentny.
Takie detale mozna by wymieniac dosc dlugo ale czy jest sens? Ja odczywam wiekszy komfort i satysfakcje piszac w c++. Ciesze sie ze ty pq musisz "pomeczyc" sie w c. Moze teraz docenisz ten jezk. :-) --Pozdrawiam
Ojciec (Delphi/C++)

0

Ojciec napisał:
Zalety deklaracji zmiennych w c++ (w zwyklym c nie ma takiej swobody) docenilem gdy piszac przez dluzszy czas w c++ musialem napisac cos w OP. Piszac dluzsza procke meczylo mnie ciagle wracanie do bloku var.

Ja wolę mieć wszystkie zmienne w jednym miejscu. Łatwiej mi się zorientować w kodzie (znów większa czytelność).

Operatory typu += zniejszaja czytelnosc tylko do pewnego czasu, po prostu kwestia wprawy i wplywow starych przyzwyczjen.

Zgadzam się. Jak dla mnie zasada tworzenia tego typu operatorów jest prosta, a znacznie przyspieszają pisanie.

Piszac w delphi nie spotkalem sie takze ze strukturami typu unie

W Delphi wykorzystuje się w tym celu Variant.

czy pola bitowe

Mógłbyś dać przykład jak to wygląda? Słabo znam się na C++ (głównie przerabiam kod C++ na Delphi) Może będę wiedział co zastępuje pola bitowe.

W inny sposob sa realizowane lancuchy znakowe.

To zależy. Można stosować zarówno typ string, charakterystyczny dla OP, jak i pchar, WideChar i inne charakterystyczne dla C++.

W c++ nie ma dosc sztucznego podzilu na procedury i funkcje,a te ostatnie w inny sposob zwracaja wartosc.

Jak już ktoś z programujących w C++ napisał, to tylko kwestia nazewnictwa.

W c++ operacje wskaznikowe nie sa ograniczone tylko do zmiennych dynamiczcnych.

Ostatnio pq udowodnił mi, że także obiekty są przekazywane przez wskaźniki.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

Dzieki wszystkim... Czekam na dalsze opinie i mam nadzieje, ze watek nie przerodzi sie w kolejna klotnie co jest lepsze :))) . Uzupelnienie do Dryobatesa:

&gtW Delphi wykorzystuje się w tym celu Variant.

Dokladniej sie to nazywa rekordem wariantowym. Rekordy wariantowe tworzy sie przy uzyciu case..of wewnatrz rekordu. Typ Variant to chyba troche co innego, choc jego implementacja jest zapewne rekorem wariantowym.

Przegladalem (bo dokladnie czytac mi sie nie chcialo) dalsze rozdzialy wspomnianej wyzej ksiazki i znalazlem kolejna wazna roznice: otoz C++ dopuszcza dziedziczenie klasy po wiecej niz 1 przodku. Autorzy ksiazki, ktorzy sa w ogole bardzo entuzjastyczni do C++, wypowiadaja sie o wielokrotnym dziedziczeniu z pewna rezerwa, jako o mechanizmie bardzo podatnym na bledy.. Ciekaw jestem zdania znawcow C++ na ten temat.

Autorzy z duza ostroznoscia wypowiadaja sie rowniez o przeciazaniu operatorow. Moj stosunek (jesli w ogole mozna mowic o jakims stosunku u osoby znajacej temat nader powierzchownie) jest ambiwalentny. Z jednej strony, dla pewnych klas przeciazone operatory sa dosc naturalne. Autorzy daja przyklad daty, dodawanie np. dni czy miesiecy do dat jest dosc naturalne. Trzeba wiec zrobic przeciazony operator dodawania bo data ma skomplikowana wewnetrzna strukture (dd.mm.yyyy) i co gorsza np przepelnienie dni w miesiacu wystepuje dla roznej liczby dni (28-31) zaleznej od miesiaca, a nawet od roku. Podobnie odejmowanie dat, dajace w wyniku roznice miedzy 2 datami, czy operatory in/dekrementacji sa dosc naturalne. Z drugiej strony, czy zapis Date[1]+Date[2] jest lepszy niz AddDates(Date[1], Date[2])? Date[1]-Date[2] moze dac wynik albo w dniach, albo dniach i miesiacach, albo dniach i miesiacach i latach, i programista nie widzi tego od razu. Funkcje powiedzmy DeltaDays(D1, D2 : Date), DeltaDaysMonths(D1, D2 : Date) itd sa chyba bardziej czytelne (sorry za zapis paskalowy).

No to na razie tyle... Pozdrawiam wszystkich, Pawel

A, i jeszcze do marcina:
biblioteki algorytmow i struktur danych tez wydaja mi sie wazna zaleta C++ (wlasnie dzis o nich przeczytalem).

Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

Dryobates napisał:
Ojciec napisał:
&gtZalety deklaracji zmiennych w c++ (w zwyklym c nie ma takiej swobody) docenilem gdy piszac przez dluzszy czas w c++ musialem napisac cos w OP. Piszac dluzsza procke meczylo mnie ciagle wracanie do bloku var.
&gt

ZAJEBISTE spostrzezenie z "zwyklym C" jak to okreslilez zmienne dokladnie tak samo sie deklaruje jak w C++ - zadnej powtarzam ZADNEJ nie ma roznicy

&gtJa wolę mieć wszystkie zmienne w jednym miejscu. Łatwiej mi się zorientować w kodzie (znów większa czytelność).
&gt

tyle ze zmienne zyja do konca programu a nie umieraja np po wyjsciu z petli - znowu DUPA

&gtOperatory typu += zniejszaja czytelnosc tylko do pewnego czasu, po prostu kwestia wprawy i wplywow starych przyzwyczjen.
&gt

zmniejszaja czytelnosc (chyba komus kto zna tylko HTML'a i nie moze sie polapac w nowoczesnych jezykach programowania)

&gtTo zależy. Można stosować zarówno typ string, charakterystyczny dla OP, jak i pchar, WideChar i inne charakterystyczne dla C++.
&gt

GOWNO : C++/C przechowuje napisy jako wskaznik do tablicy znakow, to co ty juz wymieniles to so klasy ktore opakowuja char *

&gtW c++ nie ma dosc sztucznego podzilu na procedury i funkcje,a te ostatnie w inny sposob zwracaja wartosc.
&gt

DUPA 2 : SA Tylko funkcje , tylko ze niektore nie zwracaja zadnej wartosci (zwracaja void)

&gtJak już ktoś z programujących w C++ napisał, to tylko kwestia nazewnictwa.

HA : bez komentarza

&gtW c++ operacje wskaznikowe nie sa ograniczone tylko do zmiennych dynamiczcnych.
&gt

a niby jak jak wszystko moze byc zmienna dynamiczna (i wszystko jest)

&gtOstatnio pq udowodnił mi, że także obiekty są przekazywane przez wskaźniki.
&gt

Obiekty (czyt. KLASY) sa przekazywane tylko poprzez wskazniki lub poprzez referencje , przekazywnie poprzez wskazniki jest rzadziej stosowane :-)

0

Wojtas, a moze jako czlowiek bywaly w C/C++ odpowiedzialbys na moje (byc moze naiwne) pytania. Spokojnie i bez wiesz ktorych slow, jesli mozna prosic...--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

Dyrobytes napisal:
&gtMógłbyś dać przykład jak to wygląda? Słabo znam się na C++ (głównie przerabiam kod C++ na Delphi) Może będę wiedział co zastępuje pola bitowe.

Dzieki polom bitowym mozesz operowac na pojedynczych bitach. Mozesz np. deklarowac sobie struktury ktorye maja elemnty 2, 3 bitowe itd.

Prosba do Wojtasa: UWAZNIEJ CZYTAJ POSTY!

--Pozdrawiam
Ojciec (Delphi/C++)

0

&gtDzieki polom bitowym mozesz operowac na pojedynczych bitach. Mozesz np. deklarowac sobie struktury ktorye maja elemnty 2, 3 bitowe itd.

Slur... już mi cieknie ślinka jak sobie o takim czyms pomysle:) No rzeczywiście przydaloby się coś takiego w Delphi... (może jest ale o tym nie wiemy:)) {zzz} --Vroc
&ltDelphi Knight&gt

0

pq napisał:
Dzieki wszystkim... Czekam na dalsze opinie i mam nadzieje, ze watek nie przerodzi sie w kolejna klotnie co jest lepsze :))) . Uzupelnienie do Dryobatesa:
&gt
&gt&gtW Delphi wykorzystuje się w tym celu Variant.

Dokladniej sie to nazywa rekordem wariantowym. Rekordy wariantowe tworzy sie przy uzyciu case..of wewnatrz rekordu. Typ Variant to chyba troche co innego, choc jego implementacja jest zapewne rekorem wariantowym.

Swoją pomyłkę zauważyłem zaraz po wysłaniu postu, ale nie mogłem poprawić ponieważ znowu padła sieć :[[
Podobne nazewnictwo zmyliło mnie. Jedyną wadą tego rozwiązania jest to, że case można stosować jedynie na końcu rekordu :(. Pod tym względem unie jest bardziej uniwersalne.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

Vroc napisał:
Slur... już mi cieknie ślinka jak sobie o takim czyms pomysle:) No rzeczywiście przydaloby się coś takiego w Delphi... (może jest ale o tym nie wiemy:)) {zzz}

Coś podobnego w Delphi nazywa się TBits. Także daje dostęp do pojedynczych bitów :)--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

Dryobates napisał:
&gtCoś podobnego w Delphi nazywa się TBits. Także daje dostęp do pojedynczych bitów :)

a jak sie tego uzywa?--Vroc
&ltDelphi Knight&gt

0

wojtas_ napisał:
tyle ze zmienne zyja do konca programu a nie umieraja np po wyjsciu z petli - znowu DUPA

To zależy, czy deklarujesz zmienną globalną - dla programu, czy lokalną - tylko dla danej funkcji. Do pętli tylko ograniczyć się nie da. To fakt. Ale znowu tu argument pq: jak się nazywa tak samo zmienne to można się pogubić. Chcesz oszczędności pamięci? To twórz zmienne dynamicze. Pojawi się przed pętlą zniknie za nią :)

GOWNO : C++/C przechowuje napisy jako wskaznik do tablicy znakow, to co ty juz wymieniles to so klasy ktore opakowuja char *

Jak byś nie wiedział to mówię ci, że typ PChar w Delphi także jest wskaźnikiem do tablicy znaków!

W c++ nie ma dosc sztucznego podzilu na procedury i funkcje,a te ostatnie w inny sposob zwracaja wartosc.

DUPA 2 : SA Tylko funkcje , tylko ze niektore nie zwracaja zadnej wartosci (zwracaja void)

Powtarzam za Ojcem. Czytaj dokładnie posty! Przecież on napisał, że nie ma podziału. Ja dopisałem:

Jak już ktoś z programujących w C++ napisał, to tylko kwestia nazewnictwa.

HA : bez komentarza

Jak dla mnie nie ma różnicy czy piszę:
Procedure Test, Function Test : Integer czy zamiast tego void Test(void), int Test(void)

W c++ operacje wskaznikowe nie sa ograniczone tylko do zmiennych dynamiczcnych.

a niby jak jak wszystko moze byc zmienna dynamiczna (i wszystko jest)

Dziękuję za argument, który wyrównuje różnice pomiędzy Delphi i C++ :-)

Vroc napisał:
Dryobates napisał:

Coś podobnego w Delphi nazywa się TBits. Także daje dostęp do pojedynczych bitów :)

a jak sie tego uzywa?

var
A : TBits;
begin
A := TBits.Create;
A.Bits[0] := true;
A.Bits[1] := false;
if A.Bits[1] then ShowMessage('Bit nr 1 jest równy 0');

Oczywiście można stosować też inne wartości niż true i false :) Po prostu 1 to true a 0 to false.

--
Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

Dryobates napisał:
&gt&gta jak sie tego uzywa?
&gt
&gtvar
&gt A : TBits;
&gtbegin
&gt A := TBits.Create;
&gt A.Bits[0] := true;
&gt A.Bits[1] := false;
&gt if A.Bits[1] then ShowMessage('Bit nr 1 jest równy 0');
&gt
&gtOczywiście można stosować też inne wartości niż true i false :) Po prostu 1 to true a 0 to false.

a jak zmienic poszczegolne bity jakiejs innej zmiennej, np char?--Vroc
&ltDelphi Knight&gt

0

Vroc napisał:
a jak zmienic poszczegolne bity jakiejs innej zmiennej, np char?

var
A : TBits;
x : Byte;
B : Char;
begin
B := '7';
A := TBits.Create;
for x := 0 to 7 do
A.Bits[x] := Boolean((Byte(B) shr x) and 1);
--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

W C/C++ (niewiem czy też w VC++) bardzo ciężko (jeśli w ogóle można)
tworzy się wielowymiarowe tablice dynamiczne.

Co do operatorów to znacznie szybciej działa operator + niż jego odpowiednik np. funkcja suma.

Bardzo fajne jest w OP nakładanie zmiennych.

0

marcin napisał:
W C/C++ (niewiem czy też w VC++) bardzo ciężko (jeśli w ogóle można)
tworzy się wielowymiarowe tablice dynamiczne.

Ja też jeszcze nie wiem. Ale przypuszczam, że jednak się da.

Co do operatorów to znacznie szybciej działa operator + niż jego odpowiednik np. funkcja suma.

pq udowadniał już, że tak naprawdę to nie ma większej różnicy, czy to funkcja czy operator. Podawał przykład z Inc(I) i I := I +1;

Bardzo fajne jest w OP nakładanie zmiennych.

Jakie nakładanie zmiennych? Chodzi ci o rzutowanie? Np:
var
A : Byte;
B : Char;
begin
B := '1';
A := Byte(B);
end;

W C/C++ to raczej też istnieje :)

Na początku października wrzucę post, w którym zarówno programiści Delphi, C/C++, Javy, JS, PHP i każdego innego języka będą mogli się wyszaleć :) Przedstawić własne preferencje. (poczekam jednak do października, żeby post nie przepadł)--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

Dryobates napisał:
Jakie nakładanie zmiennych? Chodzi ci o rzutowanie?
Nie, np:
var lancuch : ShortString;
dl : Byte absolute lancuch;

Czyli każdej zmiennej można przydzielić pamięć o takim samym adresie jaki posiada inna zmienna.W praktyce nasze zmienne są na siebie nałożone.
Bardzo fajne.

pq udowadniał już, że tak naprawdę to nie ma większej różnicy, czy to funkcja czy operator. Podawał przykład z Inc(I) i I := I +1;

JAK NIE JAK TAK.
Np. dodając, czy mnożąc bez porównania szybciej działa operator przesunięcia bitowego niż operator + czy nasza funkcja suma.

wyrażenia:
a +a szybciej a &lt&lt 1
16 * a szybciej a &lt&lt 4

0

marcin napisał:
&gtCzyli każdej zmiennej można przydzielić pamięć o takim samym adresie jaki posiada inna zmienna.W praktyce nasze zmienne są na siebie nałożone.
&gtBardzo fajne.

To mozna chyba jako-tako zrobic w Delphi rekordem wariantowym (=unia). Czy moze nie rozumiem, Marcin?

&gtpq udowadniał już, że tak naprawdę to nie ma większej różnicy, czy to funkcja czy operator. Podawał przykład z Inc(I) i I := I +1;
&gt
&gtJAK NIE JAK TAK.

Ja tylko stwierdzilem, ze w Delphi Inc(I) , I:=I+1 or Succ(I) dzialaja rownie szybko. To sie nie musi rozciagac na wszystkie jezyki. Sprawa zalezy od tego, jak kompilator tlumaczy zrodlo. Wiele tzw funkcji w Delphi nie jest 'funkcjami rzeczywistymi' (Lischner, Delphi.Almanach). Ja to rozumiem nastepujaco (nie wiem, czy dobrze): funkcje te nie sa wywolywane przez call poprzedzony wsadzaniem parametrow do rejestrow (jak to stara sie robic Delphi) czy na stos, tylko rozkazy realizujace funkcje sa po prostu wstawiane w ciag kodu wynikowego. To chyba jest odpowiednik funkcji inline w C. No i jesli ja to rozumiem, to odpowiada to operatorowi, bo operator tez musi byc zrealizowany przez wstawienie ciagu rozkazow maszynowych. Ale to wszystko zalezy od tego co zrobi kompilator.

BTW, ciekawe jak C++ realizuje operatory przeciazone: czy inline, czy jako skok do funkcji operatora?? Kto wie??

--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

marcin napisał:
Nie, np:
var lancuch : ShortString;
dl : Byte absolute lancuch;

O ile się orientuję to w C++ odpowida temu unie (w Delphi też zależnie jak case się użyje to pola w rekordzie mogą na siebie nachodzić lub nie)

Np. dodając, czy mnożąc bez porównania szybciej działa operator przesunięcia bitowego niż operator + czy nasza funkcja suma.

wyrażenia:
a +a szybciej a &lt&lt 1
16 * a szybciej a &lt&lt 4

No tak, tylko co to ma do rzeczy? Zarówno w Delphi jak i w C++ można wykonać obydwie przedstawione operacje.
a+a, a &lt&lt 1, a shl 1
16*a, a &lt&lt 4, a shl 4

Nie wprowadza to żadnej różnicy. A jak już pq napisał użycie funkcji wcale nie musi oznaczać, że w kodzie zostanie to zapisane jako funkcja. Kompilator optymalizuje kod i wszelkie nasze głupoty poprawia.--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

Dryobates napisał:
O ile się orientuję to w C++ odpowida temu unie
Odpowiednikiem uni jest rekord wariantowy.

Pq napisał:
ciekawe jak C++ realizuje operatory przeciazone: czy inline, czy jako skok do funkcji operatora?? Kto wie??
Funkcje operatorowe są to zwykłe funkcje z tą różnicą że mają zarezerwowaną
nazwę operator. Od programisty zależy czy będzie to funkcja typu zwykła,
inline czy friend.
NIE wszystkie funkcje mogą być typu inline.

A przy okazji - jest w OP odpowiednik funkcji typu friend w C++. Funkcje typu friend
mają możliwość odwoływania się do prywatnych danych wielu obiektów a nie tylko swojego.

Szkoda że w OP brak wielodziedziczenia.

0

marcin napisał:
Odpowiednikiem uni jest rekord wariantowy.

Tylko, że w rekordzie wariantowym także można wykorzystać tą samą pamięć:
type TaSamaPamiec = record
case Znacznik : Boolean of:
True : (JakasZmienna1, JakasZmienna2 : Integer); *Tutaj zajmują tą samą pamięć
False : (JakasZmienna3, JakasZmienna4 : Single);
end;

lub różną:
type RoznaPamiec = record
case Boolean of:
True : (JakasZmienna1, JakasZmienna2 : Integer); *A tu różną
False : (JakasZmienna3, JakasZmienna4 : Single);
end;

Szkoda że w OP brak wielodziedziczenia.

Jak dla mnie to raczej nie szkoda. Chyba bym się pogubił. Ale jak ludziom pomaga...--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

0

Ten text 2 posty wyżej o funkcjach friend to pytanie.Istnieją takie w OP?

0

marcin napisał:
Ten text 2 posty wyżej o funkcjach friend to pytanie.Istnieją takie w OP?

Gdybyś był zarejestrowanym użytkownikiem to mógłbyś dodać '?' ;)

W OP nie słyszałem o dziedziczeniu po wielu przodkach, więc funkcji typu friend chyba nie ma (ale głowy nie dam).--Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

Pomoc do Delphi po polsku. http://www.4programmers.net/forum/index.php?action=show&id=21335&c=2

Oficjalny kanał IRC serwisu 4programers:
serwer: warszawa.ircnet.pl sieć: POLNet kanał: #4programmers.net

1 użytkowników online, w tym zalogowanych: 0, gości: 1