Читаем C# 4.0 полное руководство - 2011 полностью

Console.WriteLine("tl.x: " + tl.x);

Console.WriteLine("t2.х: " + t2.x);

Console.WriteLine("t3.x: " + t3.x);

Console.WriteLine("t4.x: " + t4.x);

}

}

При выполнении этой программы получается следующий результат.

В конструкторе MyClass.

В конструкторе MyClass (int) .

В конструкторе MyClass(double).

В конструкторе MyClass (int, int). tl.x: О t2.x: 88 t3.x: 17 t4.x: 8

В данном примере конструктор MyClass перегружается четыре раза, всякий раз конструируя объект по-разному. Подходящий конструктор вызывается каждый раз, исходя из аргументов, указываемых при выполнении оператора new. Перегрузка конструктора класса предоставляет пользователю этого класса дополнительные преимущества в конструировании объектов.

Одна из самых распространенных причин для перегрузки конструкторов заключается в необходимости предоставить возможность одним объектам инициализировать другие. В качестве примера ниже приведен усовершенствованный вариант разработанного ранее класса Stack, позволяющий конструировать один стек из другого.

// Класс для хранения символов в стеке.

using System;

class Stack {

// Эти члены класса являются закрытыми, char[] stck; // массив, содержащий стек int tos;    // индекс вершины стека

// Сконструировать пустой объект класса Stack по заданному размеру стека, public Stack(int size) {

stck = new char[size]; // распределить память для стека tos = 0;

}

// Сконструировать объект класса Stack из существующего стека, public Stack(Stack ob) {

// Распределить память для стека, stck = new char[ob.stck.Length];

// Скопировать элементы в новый стек, for (int i=0; i < ob.tos; i++) stck[i] = ob.stck[i];

// Установить переменную tos для нового стека, tos = ob.tos;

// Поместить символы в стек, public void Push(char ch) { if(tos==stck.Length) {

Console.WriteLine(" - Стек заполнен."); return; -

}

stck[tos] = ch; tos++;

}

// Извлечь символ из стека, public char Pop    {

if(tos==0)    {

Console.WriteLine (" - Стек пуст."); return (char) 0;

}

tos—;

return stck[tos];

}

// Возвратить значение true, если стек заполнен, public bool IsFullO { return tos==stck.Length;

}

// Возвратить значение true, если стек пуст, public bool IsEmptyO { return tos==0;

}

// Возвратить общую емкость стека, public int Capacity    {

return stck.Length;

}

// Возвратить количество объектов, находящихся в настоящий момент в стеке, public int GetNum { return tos;

}

}

// Продемонстрировать применение класса Stack.

class StackDemo {

static void Main {

Stack stkl = new Stack(10); char ch; int i;

// Поместить ряд символов в стек stkl.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных