При вызове конструктора копий указатели ссылаются на один и тот же указатель. И при вызове деструктора повторное удаление указателя. Вопрос состит в том, как правильное реализовать конструктора копий, что бы в дальнейшем не происходило повторное удаление указателя.
#include <iostream>
class Io
{
public:
Io (int v) : val(v){};
virtual ~Io (){};
int getValue(){return val;}
private:
int val;
};
class Count
{
public:
Count (Io _io):io_ptr(new Io(_io)){};
virtual ~Count (){delete io_ptr;};
Count(const Count &_io)
{
std::cout << "COPPY" << std::endl;
}
Io* getIo()const{return io_ptr;}
private:
Io *io_ptr;
};
int main (int argc, char const* argv[])
{
Count c(Io(12));
Count c2(c);
return 0;
}
Например, так:
Count(const Count &_io):io_ptr(new Io(_io.io_ptr->getValue()))
{
std::cout << "COPPY" << std::endl;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени суток! Можете привести пример тривиального хеширования? В интернете не смогла найти никакой понятной информации
Скриншот экрана хранится в буфере в виде байт RGBНужно независимо от его исходных размеров привести его к разрешению 1280х720
При добавлении спецификатора final мы запрещаем переопределять метод в базовом классеТогда зачем нам нужен в базовом классе создавать виртуальный...
Как мне в Qt5 настроить так чтобы на одном листе A4 печатать два формата A5?