- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
<?php
class A
{
public function TestFunc()
{
var_dump($this);
return $this->test;
}
}
class B
{
public $test;
public function __construct()
{
$this->test = "Nice trick";
}
public function GetTest()
{
return A::TestFunc();
}
}
$b = new B;
echo $b->GetTest();
Почему пыхеры не смогли?
Зачем это всё?
Пых это шобло-ёбло-низатор
https://pikabu.ru/story/peresmatrivayu_polnometrazhnik_yuzhnogo_parka_667795?cid=4609425
то-есть тобой?
охранница в свободное время пишет на борланд паскале?
Отсылка к сказке про Змея Горыныча?
Минуточку, это не рыцарские доспехи. Конический шлем издревле был у славян, с него соскакивали лезвия. Хм. А меч напоминает греческий.
но соскочил-ли ты с хуя? думаю, что нет
сука дебил поставь себе русское рскладко
Совместимость: «Трубопаскакаль», «Дельфи», «Фрипаскаль».
Всё работает, всё всем платится:
http://ideone.com/VFOWMv
К сожалению, пришлось наследовать A от B. Можно попытаться без наследования, но тогда код будет совсем царским и сможет в любой момент бабахнуть.
С виртуальными была бы жопа: пришлось бы разыскивать метод TestFunc в VMT, а его там у объекта B быть не должно.
https://freepascal.org/docs-html/current/ref/refse31.html
Then the following 3 calls are equivalent:
pp := new (Pobj,Init);
and
new(pp,init);
and also
new (pp);
pp^.init;
В документации по «TP» и по «Delphi» второй параметр тоже упоминался.
Каждый класс имеет фабричный метод Creatе, возвращающий ссылку на созданный экземпляр класса с типом TObject. Инициировать объекты как либо иначе запрещено. Если же ты откроешь модуль system.pas, то увидишь, что методы класса TObject "Create" и "Destroy" вообще не реализованы - это тупо сахар.
В «C++» есть только ключевое слово «class». В «Турбо Паскале» было только ключевое слово «object».
Некоторые программисты словом «класс» называют тип данных, а словом «объект» — конкретный экземпляр класса. Но полагаться на то, что собеседник использует именно такую терминологию, нельзя. Лучше явно уточнять, что имеется в виду тип или экземпляр.
*****
Теперь про слова «class» и «object» в языке «Object Pascal» («Delphi», «Free Pascal»).
Экземпляры объекта, описанного ключевым словом «object» можно создавать в стеке (в области локальных переменных функции), можно в секции данных (в области глобальных переменных) и можно в куче (в этом случае их можно явно уничтожать). Стандартных конструкторов и деструкторов нет, ты их должен объявлять явно. Такие экземпляры можно передавать по значению и по указателю.
Экземпляры объекта, описанного ключевым словом «class», создаются диспетчером памяти стандартной библиотеки (system.pas). Программист не может управлять местом их хранения. Такие объекты в числе своих предков обязательно имеют TObject, поэтому у них всегда есть методы Create и Destroy. Экземпляры же всегда передаются по ссылке — это сахар, который выглядит как значение, но на самом деле является указателем.
Именно по этому
https://kotlinlang.org/docs/reference/object-declarations.html
Если я правильно понял, в нём объектом называется анонимный класс. Используется, когда нужно объявить и тут же получить экземпляр.
и также реализуеца сынглтон
это как в джс написать
let petuhObj = {}
Но мне интересно, зачем тебе столько петухов, ведь все знают, что за ними один ты.
Остальных людей тошнит от тебя на вторую минуту общения.
Убей уже себя, сделай мир чище
Просто сделай это.
и в перле
Работает:
http://ideone.com/W74P5V
Осталось придумать, что делать, когда есть виртуальные методы.
Убегай
Именно поэтому я против "PHP"