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>Options>Compiler>Assignable 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