Skip to content

obizzz/CPP-2019-2020-HW5

 
 

Repository files navigation

CppSource

Repo for fifth homework on 2019/2020 C++ course

Task 1

Создайте класс Counted, каждый экземпляр которого имеет свой ID типа int. ID должны быть:

  • положительны
  • уникальны у каждого объекта
  • иметь минимально возможное значение, чтобы предотвратить переполнение типа

То есть, если какой-то момент времени в памяти существует два объекта, то их ID должны быть равны 1 и 2, соответственно. Объектов с невалидными ID или без ID не должно существовать.

Не забывайте про Rule of Five.

Task 2

Добавьте экземпляры класса Counted в std::vector. Правильно реализованный класс Counted будет вызывать ошибку компиляции при попытке компиляции такого кода. Найдите в документации std::vector часть, объясняющую причину ошибки компиляции. Скопируйте/заскриньте эту часть и отправьте ее в коммент Pull Request-а.

Task 3

Не меняя класс Counted, предложите два способа добавления экземпляров этого класса в std::vector. "Добавление" в данном случае означает, что через элементы вектора должна быть возможность получить доступ к объектам Counted.

Примерный код:

/*
Каким-то образом создаем объекты с1 и c2 типа Counted
*/
std::vector</* ваш код */> vector = /* ваш код, добавляющий c1 и c2 в vector */ ;
for(const auto& i:vector){
    // вывод ID объектов, чтобы убедиться, что все работает как надо
    std::cout << /* ваш код */ << std::endl; 
}

Task 4*

Не меняя класс Counted, предложите еще один способ добавления экземпляров этого класса в std::vector.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 91.0%
  • QMake 9.0%