Konstruktor kopiujacy w Delphi

0

witam.
Zylem sobie w blogiej nieswiadomosci, az zachcialo mi sie pojsc na przedmiot "Programowanie Obiektowe" wykladany na mojej uczelni. (oczywiscie w C++)

Spotkalem sie na nim z wieloma rzeczami ktorych nigdy nie uzywalem w Delphi.
Wsrod nich byl Konstruktor kopiujacy. Do tej pory nie przeszkadzalo mi to ze nic takiego nie istnieje w Delphi( a moze jest tylko ja nic o tym nie wiem [!!!] [???] [!!!] ). Zawsze dzialalem na oryginalnym obiekcie i sam dbalem o to zeby nie zwalniac dynamicznie tworzonych pol i ogolnie trzymac w nim pozadek. Programy dzialaja, bledow nie robia i moglbym dalej zyc bez tych konstruktorow, ale od kiedy wiem o ich istnieniu, co chwile natykm sie na sytuacje w ktorych moglbym ich uzyc.

<ort>Z tad</ort> moje pytanie: czy istnieja jakies podobne mechanizmy w delphi? jesli nie to po co je wymyslili w C++? Wszelkie ciekawe spostrzezenia i komentarze beda mile widziane w tym miejscu. pozdrawiam
0
  1. Nic nie stoi na przeszkodzie, żebyś sobie taki konstruktor napisał
  TAbcd = class
  public
    aa: string;
    constructor Create; overload;
    constructor Create(a: TAbcd); overload;
  end;

implementation

constructor TAbcd.Create(a: TAbcd);
begin
  aa := a.aa;
end;

constructor TAbcd.Create;
begin
  aa := '';
end;
  1. niestety* nie ma automatu, który to zrobi za Cibie

      • i dobrze bo w c++ działa on tylko dla pól o typie prostym - przy obiektach czy wskaźnikach już nie jest tak wesoło
  2. w Delphi jest jeszcze klasa TPersistent z metodą Assign - zobacz sobie np. TStrings.Assign

0

ok, dzieki.
zdazylo mi sie pare razy uzyc assign ale to bylo dawno i jeszcze nie wiedzialem co za roznica (assign czy := ).

a czy w delphi jest cos takiego jak szablony (tez z c++)?

0

Nie ma szablonów ale można skorzystać z class reference.

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