Wszystkie ćwiczenia


Ćwiczenia 7

OOP

Klasy i obiekty

Zadanie 0

Wskaż nowe elementy języka.


#include <cmath>

class Square
{
    private:
        int length;
    public:
        Square();
        Square(int);
        double diagonal();
};

Square::Square()
{
    length = 1;
}

Square::Square(int length)
{
    this->length = length;
}

double Square::diagonal()
{
    return length * std::sqrt(2);
}

int main()
{
    Square s;
    std::cout << s.diagonal();
}
Zadanie 1

Napisz klasę zgodnie z podaną specyfikacją.


Pojedynczny schemat UML dla klasy Car
Zadanie 2

Stwórz klasę "Student_group", która będzie trzymała tablicę struktur typu "Student". Wiedząc, że student nie może należeć do kilku grup studenckich, napisz właściwy destructor.


#include <iostream>

class A
{
    private:
        int *p;
    public:
        A();
        ~A();
};

A::A()
{
    this->p = new int[100];
}

A::~A()
{
    delete[] this->p;
}
Zadanie 3

Utwórz klasę "Student_group_with_tutor"

  1. Zastosuj dziedziczenie
  2. Wzbogadać klasę o string, który będzie reprezentował nazwisko nauczyciela.
  3. Spraw, aby pamięć była dobrze zwalniana.

#include <iostream>

class A
{
    public:
        int value;
};
class B: public A
{

};

int main() {
    B* b = new B();
    b->value = 10;
    std::cout << b->value;
    delete b;
}

    
Zadanie 4

Utwórz klasę "Faculty_student_group"

  1. Zastosuj dziedziczenie
  2. Wzbogadać klasę o enum, którego rolą będzie zapisanie specjalizacji.
  3. Zastosuj nową składnie dla przypisywania pól dla konstruktora.
  4. Spraw, aby pamięć była dobrze zwalniana.

#include <iostream>

class A
{
    private:
        int value;
    public:
        A(int);
};

A::A(int v) : value(v) {}