Std :: Vector: Когда указатель не указатель?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std :: Vector: Когда указатель не указатель?

Сообщение Anonymous »

У меня есть этот существующий рабочий код, который я пытаюсь преобразовать в реализацию: < /p>

Код: Выделить всё

Bitmap *pbitmap = new Bitmap(L"images.png");
nWidth  = pbitmap->GetWidth();
nHeight = pbitmap->GetHeight();
graphics.DrawImage(pbitmap, 950, 200, nWidth, nHeight);
Итак, теперь у меня есть этот почти эквивалентный код с использованием (массивный благодаря @Heap onverun !!)

Код: Выделить всё

//  create empty vector container
std::vector my_vec;
//  instantiate one Bitmap object
my_vec.push_back(std::make_unique(L"images.png"));
nWidth  = my_vec[0]->GetWidth();
nHeight = my_vec[0]->GetHeight();
Bitmap *pbitmap = (Bitmap *) my_vec[0];
graphics.DrawImage(pbitmap, 950, 200, nWidth, nHeight);
строки getwidth ()/getheight (), по-видимому, подтверждают, что my_vec [0]-это растровое изображение* ... но следующая строка назначения не выполняется со следующей ошибкой:

Код: Выделить всё

example1.cpp:143:22: error: invalid cast from type '__gnu_cxx::__alloc_traits::value_type' {aka 'std::unique_ptr'} to type 'Gdiplus::Bitmap*'
143 |    Bitmap *pbitmap = (Bitmap *) my_vec[0];
Так что я все еще просто не понимаю, как работает и как его использовать ...
Совета?


Подробнее здесь: https://stackoverflow.com/questions/796 ... -a-pointer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»