Описание тега constructor-chaining

Цепочка конструкторов - это процесс вызова конструктора суперкласса конструкторами подкласса в дереве наследования при создании объекта.
2 ответа

Результат не дает ожидаемого результата

Это мой код: class StockItem { internal float CostPrice; internal string Description; internal static int LastStockNumber = 10000; internal int StockNumber; public StockItem(int StockNumber, string Description, float CostPrice): this(Description, Co…
06 янв '15 в 04:57
3 ответа

Вызов метода Java в цепочке конструктора

Можно ли вызвать конструктор с результатом метода из другого конструктора того же класса? Я хочу иметь возможность принимать входные данные в нескольких формах и иметь что-то вроде: public class MyClass { public MyClass(int intInput) { ... } public …
29 фев '12 в 19:28
2 ответа

Можно ли перегрузить конструкторы в PHP?

Это вымышленный пример, он становится намного полезнее, когда параметров много. Это позволит вызывающей стороне использовать либо new Person("Jim", 1950, 10, 2) или же new Person("Jim", datetimeobj), Я знаю о необязательных параметрах, это не то, чт…
25 фев '12 в 03:31
2 ответа

Порядок конструктора в подклассах

В классе-потомке есть ли способ вызвать как открытый, параметризованный конструктор, так и защищенный / закрытый конструктор, при этом все еще вызывая конструктор базового класса? Например, учитывая следующий код: using System; public class Test { v…
25 янв '12 в 00:00
3 ответа

Как получить доступ к полю класса в сложной цепочке классов

Мой класс A создает в своем конструкторе экземпляр класса B. Конструктор класса B создает экземпляр своего внутреннего класса C. Класс C нуждается в поле в своем конструкторе из класса A, и здесь возникает проблема. Класс C достигает только значения…
25 окт '11 в 16:12
2 ответа

Я хочу вызвать только конструктор дочернего класса в многоуровневом наследовании?

class A { public A() { System.out.println("Constructor A"); } } class B extends A { public B() { System.out.println("Constructor B"); } } class C extends B { public C() { System.out.println("Constructor C"); } public static void main(String[] args) …
1 ответ

Конструктор делегата C++ с некоторой работой, сделанной заранее

Я пытаюсь сделать что-то вроде class A { A(); A(int num); } A::A() { int i = /* Something that loads something */ A(i); } A::A(int num) { /* something involving num */ } Мне известны делегированные конструкторы в C++ 11, и меня интересует, возможно …
25 окт '17 в 16:29
6 ответов

Delphi: Как скрыть конструкторы предков?

Обновление: выпотрошен вопрос на более простом примере, на который изначально не был принят ответ Дан следующий класс и его предок: TComputer = class(TObject) public constructor Create(Teapot: string=''); end; TCellPhone = class(TComputer) public co…
1 ответ

Гарантируется ли выполнение контрактов кода перед вызовом цепочечных конструкторов?

Прежде, чем я начал использовать Контракты Кодекса, я иногда сталкивался с осторожностью, связанной с проверкой параметров при использовании цепочки конструктора. Это проще всего объяснить с помощью (надуманного) примера: class Test { public Test(in…
12 июн '13 в 13:59
1 ответ

CodeContracts ложно отмечает отсутствующее предусловие, которое уже существует в базовом конструкторе

Скажем, у меня есть следующая иерархия классов: public class FooBase { private readonly object _obj; protected FooBase(object obj) { Contract.Requires(obj != null); _obj = obj; } } public class Foo : FooBase { public Foo(object obj) : base(obj) { } …
27 май '15 в 09:15
2 ответа

Каков наилучший способ иметь дело с необязательными делегатами в конструкторе aC#?

Я рефакторинг функции, которая принимает необязательный делегат через конструктор. Делегат запускается, когда в классе запускаются события. Если делегат не передан, вместо него используется локальная функция по умолчанию: public class Foo { int _mem…
09 дек '16 в 13:07
4 ответа

Вызов конструктора по умолчанию из параметризованного конструктора

Я хотел бы, чтобы мой конструктор по умолчанию создавал и инициализировал все объекты, показанные в моем фрагменте кода. Затем я хотел бы, чтобы мой параметризованный конструктор вызывал конструктор по умолчанию, создавая и инициализируя эти объекты…
02 дек '09 в 04:52
1 ответ

Доступ к локальным переменным в конструкторе суперкласса

У меня есть супер класс, который имеет этот конструктор: public Super(String p){ String[] result = p.split(","); setA(result[0]); setB(result[1]); setC(result[2]); setD(result[3]); setE(result[4]); } Тогда у меня есть подкласс, где я хочу использова…
7 ответов

: этот (foo) синтаксис в конструкторах C#?

Время от времени я сталкиваюсь с синтаксисом, который я видел раньше, но никогда не использовал. Это один из тех моментов. Может кто-нибудь объяснить назначение ":this" или ":base" после метода конструктора C#? Например: public MyClass(SomeArg arg) …
03 дек '08 в 19:16
8 ответов

Порядок выполнения конструктора C#

В C#, когда вы делаете Class(Type param1, Type param2) : base(param1) сначала выполняется конструктор класса, а затем вызывается конструктор суперкласса или сначала вызывается базовый конструктор?
7 ответов

Что означает это двоеточие (:)?

Перед this Ключевое слово - двоеточие. Кто-нибудь может объяснить, что означает в этом контексте двоеточие? Я не верю, что это наследство. Спасибо using System; namespace LinkedListLibrary { class ListNode { private object data; private ListNode nex…
01 июл '09 в 20:17
2 ответа

В C# 4, как я могу иметь конструкторы с необязательными параметрами в подклассе родителя с перегруженным конструктором?

У меня есть родительский класс, который имеет перегруженный конструктор, и у меня есть подкласс, который имеет конструктор с необязательными параметрами. Есть ли способ, чтобы конструкторы подкласса все еще выставляли перегруженность родительского к…
8 ответов

C# конструктор цепочки? (Как это сделать?)

Я знаю, что это, предположительно, очень простой вопрос, но я уже некоторое время борюсь с этой концепцией. Мой вопрос, как вы цепочки конструкторов в C#? Я в своем первом классе ООП, так что я только учусь. Я не понимаю, как работает построение цеп…
29 ноя '09 в 07:56
3 ответа

Почему несколько `this()` с другим аргументом не работает в родительском конструкторе?

Зачем this() должен быть в первом утверждении конструктора-цепочки? почему несколько this() с другим аргументом не работает в конечном конструкторе? package thislatest; public class ThisLatest { public static void main(String[] args) { A a1= new A(1…
21 авг '16 в 12:40
3 ответа

PHP > Как разделить класс на несколько классов?

У меня очень большой PHP-класс под названием "Player". Внутри много функций (почти 2000 строк). На самом деле, я использую эти функции следующим образом: $player = new Player(1) echo $player->getLogin(); echo $player->getStatisticPerception();…
31 окт '11 в 14:42