
- •Факультет прикладной математики и физики
- •Лабораторные работы 1 — 8 по курсу сппо:
- •1.Агрегация по ссылке (lab1.Cpp, lab1.Exe______________)
- •2.Агрегация по значению и вложением (lab1_vlog.Cpp,lab1_znach.Cpp,*.Exe)
- •1.Агрегация по ссылке
- •2.Агрегация по значению
- •2.Агрегация вложением
- •Void md() {
- •Void mf() {
- •Void me() {
- •3.Принцип подстановки
- •Int main()
- •4.1 Наследование: расширение, спецификация, специализация, конструирование(граф изменён)
- •4.2 Наследование: комбинирование(граф изменём)
- •5. Наследование: комбинирование через общих предков
- •Int main()
- •6.1 Ассоциация 1:1
- •Int main()
- •6.2 Ассоциация 1:n
- •7.1 Использование: клиент-сервер
- •7.2 Использование: общность
- •8.1 Конкретизация функции
- •8.2 Конкретизация класса
Московский авиационный институт
(национальный исследовательский университет)
Факультет прикладной математики и физики
Кафедра вычислительной математики и программирования
Лабораторные работы 1 — 8 по курсу сппо:
основы программирования на языке С++
(__________Волков В.А. в1_________)
Основная папка:
1.АГРЕГАЦИЯ ПО ССЫЛКЕ (lab1.cpp, lab1.exe______________)
имена файлов
2.АГРЕГАЦИЯ ПО ЗНАЧЕНИЮ И ВЛОЖЕНИЕМ (lab1_vlog.cpp,lab1_znach.cpp,*.exe)
3.ПРИНЦИП ПОДСТАНОВКИ (lab2_podst.cpp, lab2_podst.exe___)
4.НАСЛЕДОВАНИЕ: РАСШИРЕНИЕ, СПЕЦИФИКАЦИЯ, СПЕЦИАЛИЗАЦИЯ, КОНСТРУИРОВАНИЕ, КОМБИНИРОВАНИЕ (lab2_nasl.cpp, lab2_comb.cpp,*.exe)
5.НАСЛЕДОВАНИЕ: КОМБИНИРОВАНИЕ ЧЕРЕЗ ОБЩИХ ПРЕДКОВ (lab2_commnasl.cpp, *.exe________)
6.АССОЦИАЦИЯ (lab3.cpp,lab3_1-n.cpp, *.exe______)
7.ИСПОЛЬЗОВАНИЕ (lab4.cpp,lab4_obsh.cpp,*.exe_____)
8.КОНКРЕТИЗАЦИЯ (lab5_funk.cpp,lab5_class.cpp,*.exe_)
Работу выполнил:
08-202 Волков В ________ ________
Группа ФИО: Подпись Вариант
Руководитель: ________/Семенов А.С./
Подпись:
1.Агрегация по ссылке (lab1.Cpp, lab1.Exe______________)
имена файлов
2.Агрегация по значению и вложением (lab1_vlog.Cpp,lab1_znach.Cpp,*.Exe)
3.ПРИНЦИП ПОДСТАНОВКИ (lab2_podst.cpp, lab2_podst.exe___)
4.НАСЛЕДОВАНИЕ: РАСШИРЕНИЕ, СПЕЦИФИКАЦИЯ, СПЕЦИАЛИЗАЦИЯ, КОНСТРУИРОВАНИЕ, КОМБИНИРОВАНИЕ (lab2_nasl.cpp, lab2_comb.cpp,*.exe)
5.НАСЛЕДОВАНИЕ: КОМБИНИРОВАНИЕ ЧЕРЕЗ ОБЩИХ ПРЕДКОВ (lab2_commnasl.cpp, *.exe________)
6.АССОЦИАЦИЯ (lab3.cpp,lab3_1-n.cpp, *.exe______)
7.ИСПОЛЬЗОВАНИЕ (lab4.cpp,lab4_obsh.cpp,*.exe_____)
8.КОНКРЕТИЗАЦИЯ (lab5_funk.cpp,lab5_class.cpp,*.exe_)
1.Агрегация по ссылке
R has-a
R has-a
R has-a
R has-a
R has-a
// lab1.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include "conio.h"
#include <iostream>
using namespace std;
class E {
public:
E() {e = 0;}
int e;
void me() {
e += 1;
cout<<"e = " << e << endl;
};
};
class F {
public:
F() {f = 0;}
int f;
void mf() {
int f = 0;
f += 1;
cout<<"f = " << f << endl;
};
};
class D {
public:
D() {int d = 0;};
void md() {
int d=0;
d += 1;
cout <<"d = "<< d << endl;
};
};
class B {
private:
D *d;
public:
B() {}//конструктор, без параметров
void link (D &d) { this -> d = &d;}
D *mbd() {return d;}
};
class C {
private:
E *e;
F *f;
public:
C() {}
void link (E &e) { this->e = &e;}
E *mce() {return e;}
void link (F &f) { this->f = &f;}
F *mcf() {return f;}
};
class A {
public:
A() {}
void link (B &b) { this -> b = &b;}//B &b указатель
void link (C &c) { this -> c = &c;}
C *mac() { return c;}
B *mab() { return b;}
private:
B *b;
C *c;
};
int main() {
A a;B b;C c;D d;E e;F f;
a.link(b);a.link(c);
b.link(d);
c.link(e);c.link(f);
a.mab() -> mbd() -> md();
a.mac() -> mce() -> me();
a.mac() -> mcf() -> mf();
_getche();
return 0;
}