Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №2 ООП.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
84 Кб
Скачать
☆

Вызов конструкторов из других конструкторов

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

public CA(int a,int b,int c):this(a,b)

{

z=c;

}

При вызове конструкторов из других конструкторов, может быть вызван только один конструктор, который всегда выполняется первым.

Пример 4.

using System;

namespace ConsoleApplication4

{

class CA

{

public int x,y,z;

public readonly int rd;

public CA()

{

x=3;

y=2;

z=x+y;

rd=x+y+z;

}

public CA(int a,int b)

{

x=a;

y=b;

z=a+b;

rd=x+y+z;

}

public CA(int a,int b,int c):this(a,b)

{

z=c;

rd=x+y+z;

}

}

class Program

{

static void Main(string[] args)

{ CA obj=new CA();

Console.WriteLine("x={0,2} y={1,2} z={2,2}",obj.x,obj.y,obj.z);

CA obj1=new CA(5,7);

Console.WriteLine("x={0,2} y={1,2} z={2,2}", obj1.x,obj1.y,obj1.z);

CA obj2=new CA(8,9,25);

Console.WriteLine("x={0,2} y={1,2} z={2,2}", obj2.x,obj2.y,obj2.z);

Console.WriteLine("поля для чтения {0,2} {1,2} {2,2}", obj.rd,obj1.rd,obj2.rd);

}

}

}

2. Практическая часть

Порядок выполнения работы

  1. Выполнить примеры программ из лабораторной работы.

  2. Выполнить индивидуальные задания.

  3. Оформить и сдать отчет о выполнении лабораторной работы.

Перечень индивидуальных заданий для выполнения лабораторной работы № 2

Задание №1

Вариант 1

Объявить класс, содержащий одномерный целочисленный массив и функцию для печати элементов этого массива. Конструктор класса принимает два параметра – ссылки на массивы (внешние массивы). Конструктор выделяет память под внутренний массив размерностью равной сумме размерностей внешних массивов, затем формируются значения элементов внутреннего массива путем копирования вначале элементов одного внешнего массивов, а затем второго. Результирующий массив сортируется. Класс также должен содержать поля readonly для минимального и максимального элемента массива. Значения этих полей определяются в результате работы конструктора. Элементы внешних массивов ввести с клавиатуры. Создать объект этого класса. Распечатать элементы массива объекта, минимальное и максимальное значение массива объекта.

Вариант 2

Объявить класс, содержащий одномерный целочисленный массив, также функцию для печати элементов этого массива. Конструктор класса принимает один параметр – ссылку на массив (внешний массив). Конструктор выделяет память под внутренний массив размерностью совпадающий с размерностью внешнего массива, затем значения элементов внешнего массива копирует во внутренний массив. Класс также должен содержать поля readonly для минимального и максимального элемента массива. Значения этих полей определяются в результате работы конструктора. Элементы внешнего массива ввести с клавиатуры. Создать объект этого класса. Распечатать элементы массива объекта, минимальное и максимальное значение массива объекта.