3 / 3 / 0
Регистрация: 07.02.2016
Сообщений: 140
1

Применение указателя unique_ptr вместо обычного

23.10.2016, 13:08. Показов 869. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
добрый день. Подскажите пожалуйста,как мне данный код заменить на конструкцию с применением умного указателя?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using namespace std;
int S=4;
class HeavyCar
{
/*....*/
public:
/*.....*/
};
class Fuller
{
HeavyCar**queue;
 
public:
Fuller(HeavyCar**h)
{
 
queue=new HeavyCar*[S];
for(int i=0;i<S;++i)
queue[i]=h[i];
 
}
~Fuller()
{
delete[]queue;
}
};
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2016, 13:08
Ответы с готовыми решениями:

Чем _Get_pointer_type отличается от обычного получения типа указателя
При попытке более детально понять работу стандартных контейнеров в STD столкнулся с немалым...

Чем отличается указатель на массив от обычного указателя?
Чем отличается указатель на массив от обычного указателя?

WM_PAINT - символы вместо обычного текста
Пишу в VS C++. Вот код программы: #include &lt;windows.h&gt; BOOL RegClass(WNDPROC, LPCTSTR,...

Сайт вместо обычного текста каракули показываеть
Помогите если не сложно!!!!! Скачал шаблон, там все по английски написано было, решил переделать...

1
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
23.10.2016, 14:49 2
Цитата Сообщение от nfnicolas Посмотреть сообщение
как мне данный код заменить на конструкцию с применением умного указателя?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <memory>
 
#define OUT_TO_STREAM(type_)  \
    template<class T>friend   \
    ::std::basic_ostream<T>&  \
    operator<<(::std::basic_ostream<T>& os, const type_& obj )
 
struct HeavyCar 
{
    OUT_TO_STREAM(HeavyCar)
        { return os << "HeavyCar: " << obj.index; }
 
    int index = 0;
};
 
class Fuller
{
    std::unique_ptr<HeavyCar[]> queue;
    size_t count;
 
    OUT_TO_STREAM(Fuller)
    {
        for (size_t n = 0; n < obj.count; ++n)
            os << obj.queue[n] << '\n';
        return os;
    }
 
public:
    Fuller(const std::unique_ptr<HeavyCar[]>& src, const size_t count)
        :queue(),count(count)
    {
        queue.reset(new HeavyCar[count]);
        for (size_t n = 0; n < count; ++n)
            queue[n] = src[n];
    }
};
 
 
 
int main()
{
    std::cout << "Hello, world!\n";
 
    const size_t count = 10;
    std::unique_ptr<HeavyCar[]> queue(new HeavyCar[count]);
 
    for (size_t n = 0; n < count; ++n)
        queue[n].index = n;
 
    Fuller example(queue, count);
    std::cout << example << std::endl;
 
    system("pause");
}
0
23.10.2016, 14:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2016, 14:49
Помогаю со студенческими работами здесь

Total Commander по умолчанию вместо обычного explorer.exe
В общем нужно как то сделать так что бы при ссылке на файл из приложения или еще откуда открывался...

Указание своей уникальной ссылки вместо обычного пермалинка, генерируемого движком
Здравствуйте, как в WordPress вместо обычного пермалинка статьи (который задается автоматически...

Передача в функцию константы вместо указателя
Копаясь в чужом коде, обнаружил для себя странность в вызове функции. В C++ я разбираюсь слабо. ...

Как загнать число вместо указателя на TObject ?
Доброго вечера, Уважаемые. Хочу загнать в свойство StringGrid.Objects числовое значение. Можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru