private method Приватный метода в классе Паскаля - как запретить вызов снаружи, в одном файле без создания модуля
Primary tabs
Чтобы метод нельзя было вызвать из тела программы есть два варианта:
- Перенести класс в отдельный модуль (unit), и тогда private должен не дать вызвать метод
- Или использовать вместо обычного private модификатор strict private, тогда добиться того же самого эффекта в рамках одного файла/модуля, например:
type THelloWorld = class public whatToSay: string; // объявляем нестандартный конструктор constructor create(whatToSayValue: string); strict private procedure sayHello; end; procedure THelloWorld.sayHello; begin writeln(self.whatToSay); end; // Добавляем реализацию собственного конструктора constructor THelloWorld.create(whatToSayValue: string); begin self.whatToSay := whatToSayValue; end; var primer: THelloWorld; // переменная типа класса THelloWorld begin primer := THelloWorld.create('Привет мир!!!'); primer.sayHello(); // Ошибка! Метод приватный end.
- Источник идеи: https://forum.lazarus.freepascal.org/ind...
- Все наши уроки по Паскалю: http://fkn.ktu10.com/?q=node/7301
- Log in to post comments
- 691 reads