Widoczność typu parametru metody

0
TFoo = class
strict private type
  TBar = record
     Some: String;
  end; 
public
  procedure AddBar(ABar: TBar);
end;

Czemu to się kompiluje? rozumiem , że w sumie klasa jest poprawna, ale nie ma sensu. Czy to nie powinno chociaż warna zgłosić? Wydaje mi się ze Visual nie pozwala na takei rzeczy

0

A dlaczego ma się nie kompilować? deklarujesz typ TBar, który jest dostępny tylko dla klasy TFoo, procedura AddBar również jest dostępna w ramach klasy TFoo więc jest ok ... co innego, że AddBar jest typu public i ciężko będzie przekazać parametr (bo on z zewnątrz będzie niewidoczny) ale to już inna sprawa, z punktu widzenia kompilatora jest super ...

0

wiesz, kompilator nie wyłapie każdego przypadku programisty idioty. Jeśli coś jest zgodne z definicją języka to jest zgodne i tyle

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