У вас вопросы?
У нас ответы:) SamZan.net

Тема- Конструктор і його перевантаження

Работа добавлена на сайт samzan.net: 2015-07-10

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 7.4.2025

Лабораторна робота № 7

Тема: Конструктор і його перевантаження.

Мета: Ознайомитися з поняттям перевантаження функцій .Спроектувати и написати програму, яка використовує ці поняття.

Література: Г.Шилдт,Самоучитель С++, С.В. Глушков, Практикум по С++.

Хід роботи

Перевірити роботу  програми :

#include <iostream>
#include <conio.h>

using namespace std;

class mas
{
        int size;
        int *p;
public:
        mas(){};
        mas & operator = (mas & a);
        void Destroy();
        mas(const mas & a);

//конструктор ініціалізації
        mas(int s)
        {
                p = new int [s];
                size = s;
        }
//
кількість  элементів в масиві  
        int GetSize()
        {
                return size;
        }

        void PutMas(int i);
        int GetMas (int i);
//
деструктор
        ~mas()
        {
                Destroy();
        }
};

//перевантажений  конструктор копіювання
mas::mas(const mas &a)
{
        p = new int [a.size];
        for (int i = 0; i < a.size; i++)
                *(p+i) = *(a.p+i);
        size = a.size;
}
//
перевантаження  оператору присвласнення
//
копіювання  всіх элементів з одного масиву в другій
mas & mas::operator =(mas &a)
{
        p = new int [a.size];
        for (int i = 0; i < a.size; i++)
                *(p+i) = *(a.p+i);
        size = a.size;
        return *this;
}
//
метод звільнення  динамично  виділенїй памятs
void mas::Destroy()
{
        if (size > 0)
        {
                delete [] p;
                size = 0;
        }
}
//
заповнення масиву
void mas::PutMas(int i)
{
                *(p+i) = i;
}
//
повернення  элементу массива
int mas::GetMas(int i)
{
        return *(p+i);
}
void main ()
{
        setlocale (0,"");
        mas a(10);//
виклік  конструктора ініціалізації
        mas c;

        for (int i = 0; i<10; i++)
                a.PutMas(i);
        //
конструктор копіювання
    mas b = a;
        //
перегруженный знак привласнення
        c = b;

        cout<<"c = ";
        for (int i = 0; i<10; i++)
        {
        cout<<c.GetMas(i)<<" ";}
        cout<<"
\na = "<<a.GetSize()<<"\n";
        cout<<"b = "<<b.GetSize()<<"
\n";
        cout<<"c = "<<c.GetSize()<<"
\n";

        //виклік методу звільнення  виділеної памяті
        a.Destroy();
        //
деструктор, содержащий метод Destroy()
        b.~mas();
        c.~mas();
        //
вивід колькості обєктів масивів після звільнення  памяті
        cout<<"
\na = "<<a.GetSize()<<"\n";
        cout<<"b = "<<b.GetSize()<<"
\n";
        cout<<"c = "<<c.GetSize()<<"
\n";
        getch();
}

Контрольні запитання

  1.  Дайте визначення конструктору.
  2.  Для чого вікористовіється перевантаження конструкторів?
  3.  Чи можна перевантажувати деструктор?




1. тема и ее уровни Принципы организации БС БС ~ это основанная на экон
2. Инновационный аспект формирования научно-технической политики в современной Росси
3. Кора головного мозга КОРА ГОЛОВНОГО МОЗГА англ
4. ru Все книги автора Эта же книга в других форматах Приятного чтения Григол Абашидзе Долгая
5. Тема 1 Міжнародне ділове середовище 1
6. Брауншвейгская 17 2
7. Лечебно профилактическая деятельность курортных учреждений
8. Логические функции
9. Система самоменеджмента и ее основные элементы
10. Курсовая работа- Організація процесу творчого розвитку дитини.html