Giter VIP home page Giter VIP logo

oop's People

Contributors

maximkudryavtsev avatar

Watchers

 avatar

oop's Issues

Замечания по программе Car

  • В тестах для сравнения простых значений лучше использовать BOOST_CHECK_EQUAL, а не BOOST_CHECK с явным вызовом оператора сравнения

Замечания по программе Vector

	{
		boost::transform(numbers, numbers.begin(), (arg1 * GetMaxElement(numbers) / GetMinElement(numbers)));
	}
  • Переписать без использования "магии" из boost::phoenix, а используя лямбда-выражения

Замечания по CMyStack<T>

	CMyStack(const CMyStack &other)
	{
		if (std::addressof(other) != this)
		{
			std::shared_ptr<Node> tmp = other.m_top;
			std::shared_ptr<Node> currentElement = std::make_shared<Node>(tmp->value); // (1)
			m_top = currentElement;

			tmp = tmp->next;
			while (tmp != nullptr)
			{
				currentElement->next = std::make_shared<Node>(tmp->value); // (2)
				currentElement = currentElement->next;

				tmp = tmp->next;
			}
		}
	};
  • Проверка на равенство адреса other и this в конструкторе бессмысленна, т.к. каждый объект создается по уникальному адресу. Вот в операторе присваивания она часто нужна.
  • Если other пуст, то в (1) произойдет разыменование нулевого указателя и UB
  • Если (2) выбросит исключение, тело деструктора ~CMyStack вызвано не будет, но будет вызван деструктор m_top, по цепочке удаляющий поля, которые успели поместиться в стек. Если таких полей много (>10k), может произойти переполнение стека

Замечания по Lab 4_1

Вынести в команду вывод данных программы. В run-time нет возможности проверить информацию о фигурах, нужно предусмотреть эту возможность

Замечания по программе Rational

BOOST_AUTO_TEST_CASE(should_be_read)
{
	CRational number;
	std::stringstream strm("1/2");
	strm >> number;
	VerifyRational(number, 1, 2);
}
  • Если в потоке будет значение, не являющееся рациональным числом, как должна вести себя программа. Обработать в тесте эти ошибки

Замечания по Solve4

Enter 5 coefficients of an equation: 1 -1 0 0 0
Equation have four real roots:
x1 = -0.000;
x2 = -0.000;
x3 = 1.000;
x4 = 0.000.
  • Программа не должна выводить одинаковые корни. Корни считаются одинаковыми, если модуль разности между ними не превышает некоторой величины epsilon (порядка 10^-15)

Замечания по заданию CStringStack

class CMockString
    : public std::string
{
public:
    CMockString(std::string const& str)
    : std::string(str)
    {}

    template <typename T>
    T& operator=(T const& val)
    {
        throw std::exception("cannot assign this object");
    }
};
  • Зачем нужен CMockString и почему есть уверенность, что перегруженный оператор присваивания будет вообще вызван внутри CStringStack?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.