Back to tasksGet help with live coding in real time with Sobes Copilot
Junior — Senior
56
Коррекция программы с применением unique_ptr
Companies where asked:
Датаджайл
Task condition
Имеется небольшое приложение, разбитое на три исходных файла: main.cpp, Example.h и Example.cpp. При попытке запустить его происходит сбой. Требуется выяснить причину и предложить исправление.
Файл main.cpp:
# include "Example.h"
int main()
{
Example e(1);
}
Файл Example.cpp:
# include "Example.h"
# include <vector>
struct Example::Impl
{
Impl(int i) : m_data(1 /* count */, i) {}
std::vector<int> m_data;
};
Example::Example(int i) :
m_impl(std::make_unique<Impl>(i))
{
}
Файл Example.h:
# pragma once
# include <memory>
class Example
{
public:
Example(int);
struct Impl;
std::unique_ptr<Impl> m_impl;
};
Задача: определить, почему программа завершается с ошибкой, и предложить корректный способ её исправления, учитывая правила использования std::unique_ptr с неполным типом.