Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчеты по лабам / Лабораторная #2 Акименко

.docx
Скачиваний:
6
Добавлен:
20.12.2021
Размер:
312.36 Кб
Скачать

Дисциплина: Объектно-ориентированное программирование

Группа: ИКПИ-02

Акименко Полина

Вариант 2

ЛАБОРАТОРНАЯ РАБОТА N 2

ОТНОШЕНИЕ ВКЛЮЧЕНИЯ

1. Постановка задачи

Разработать определения двух класса COne и CTwo, которые связаны отношением включения. Поля разрабатываемых классов считаются заданными и равны значениям из таблицы ниже:

Таблица 1 - Поля классов COne и CTwo

2. Исходный код

Файл COne.h:

#pragma once

#include <string>

class COne {

private:

int n;

std::string s;

public:

COne();

COne(int arg1, std::string arg2);

COne(const COne& arg);

COne& operator=(const COne& arg);

int get_n();

std::string get_s();

void set_n(int arg);

void set_s(std::string arg);

void print();

};

Файл COne.cpp:

#include <stdio.h>

#include <string>

#include "COne.h"

COne::COne() : n(0), s("default init") {}

COne::COne(int arg1, std::string arg2) : n(arg1), s(arg2) {}

COne::COne(const COne& arg) {

n = arg.n;

s = arg.s;

}

COne& COne:: operator=(const COne& arg) {

n = arg.n;

s = arg.s;

return *this;

}

int COne::get_n()

{

return n;

}

std::string COne::get_s()

{

return s;

}

void COne::set_n(int arg)

{

n = arg;

}

void COne::set_s(std::string arg)

{

s = arg;

}

void COne::print()

{

printf("n = %d; s = %s\n", n, s.c_str());

}

Файл CTwo.h:

#pragma once

#include "COne.h"

#include <stdlib.h>

class CTwo {

private:

long long int l;

COne obj;

public:

CTwo();

CTwo(long long int arg1, COne arg2);

CTwo(const CTwo& arg);

CTwo& operator=(const CTwo& arg);

long long int get_l();

COne get_obj();

void set_l(long long int arg);

void set_obj(COne arg);

void print();

};

Файл CTwo.cpp:

#include "CTwo.h"

CTwo::CTwo() : l(0) {}

CTwo::CTwo(long long int arg1, COne arg2) : l(arg1), obj(arg2) {}

CTwo::CTwo(const CTwo& arg) {

l = arg.l;

obj = arg.obj;

}

CTwo& CTwo::operator=(const CTwo& arg)

{

l = arg.l;

obj = arg.obj;

return *this;

}

long long int CTwo::get_l()

{

return l;

}

COne CTwo::get_obj()

{

return obj;

}

void CTwo::set_l(long long int arg)

{

l = arg;

}

void CTwo::set_obj(COne arg)

{

obj = arg;

}

void CTwo::print()

{

printf("l = %d; obj: ", l);

obj.print();

}

Файл main.cpp:

#include <stdio.h>

#include <string>

#include "COne.h"

#include "CTwo.h"

int main()

{

{

COne object1;

object1.print();

COne object2(6, "test");

COne object3(object2);

object3.print();

object3 = object1;

object3.print();

object2.set_n(object2.get_n() + 4);

object2.set_s(object2.get_s() + " number 2");

object2.print();

}

printf("\n");

{

CTwo object1;

object1.print();

COne arg(26, "arg test");

CTwo object2(16, arg);

CTwo object3(object2);

object3.print();

object3 = object1;

object3.print();

object2.set_l(object2.get_l() + 4);

COne arg2(object2.get_obj().get_n() + 4, "arg2 test");

object2.set_obj(arg2);

object2.print();

}

system("pause");

}

3. Скриншоты работы программы

Рисунок 1 - Результат работы программы