[DELPHI]Объясните конструктор плз...

nik93

constructor TIntSimplex.Create(_C:TExtArray; Maximize:boolean=false);
begin
CurFound:=false;
inherited;
end;

а именно смысл inherited и как это на C# перенести

Helga87

идет вызов конструктора базового класса без параметров (или с теми же параметрами, что и у этого конструктора - уже не помню).
в C#:

class IntSimplex : BaseClass
{
public IntSimplex(ExtArray _C, bool Maximize) : base
{
CurFound = false;
}
}

nik93

тоесть inherited означает что класс наследуется?

Helga87

ну да. Только надо понимать, что в дельфи у тебя по-любому класс наследуется, хотя бы от TObject

bleyman

В шарпе тоже =)

Helga87

В шарпе еще лучше. В Дельфи есть простые типы не объекты и классы для COM не наследники TObject.

maggi14

inherited;
означает, что ты вызываешь конструктор родительского класса.
2Красин: после public двоеточие. И непонятно, почему ты наследуешь класс от BaseClass, а вызываешь конструктор base

gopnik1994

здесь может иметь смысл именно последовательно вызова inherited'а...
обычно все-таки в конструкторах сначала вызывают inherited, а уже потом дописывают свою инициализацию
надо смотреть, почему в данном случае сделано наоборот - просто по криворукости или по великой задумке.
потому что насколько я понимаю в шарпе будет сначала вызван родительский конструктор, а уж потом все остальное...
з.ы. в жаве вызвать super надо обязательно первым.
з. з.ы. а что в шарпе нету super'a какого-нть?

Helga87

C#, а не C++

Helga87

жаве вызвать super надо обязательно первым.
з. з.ы. а что в шарпе нету super'a какого-нть?

Вызов вида
public Derived : base
{
}

заменяет Java-вский
public Derived
{
super;
}

Сделано как раз для того, чтобы требование вызова super первым было очевидно

maggi14

ой, пардон, с пабликом понятно
но с именем конструктора все равно вопрос остался

gopnik1994

а вообще как доступ к родительским методам осуществляется?

maggi14

все, не остался

Helga87

base.SomeMethod;
base.base.SomeMethod;
Оставить комментарий
Имя или ник:
Комментарий: