oop's People
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.