Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Как объявить сложную конструкцию


Автор: Нитонисе 2.11.2010, 22:10
Нужно объявить указатель на вектор указателей, указывающих на вектор указателей? То есть своеобразный двухмерный массив.

Автор: leniviy 2.11.2010, 22:57
Код

std::vector<std::vector<void*> *> *pvpvp;

Я бы объявил вектор векторов.

Автор: mrbrooks 3.11.2010, 08:58
leniviy, хранить просто указатели - дело не кошерное. для этого используют умные указатели. не то что, критично, но как бэ правило хорошего тона. smile 

Автор: oldcode 3.11.2010, 09:54
Цитата(mrbrooks @ 3.11.2010,  08:58)
умные указатели

а можно пример именно "умных указателей" ?

Автор: mes 3.11.2010, 10:27
std::shared_ptr для свежих компилятров, для остальных можно взять из буста или другой библиотеки, например loki. 

Автор: Нитонисе 3.11.2010, 11:54
Цитата(oldcode @  3.11.2010,  09:54 Найти цитируемый пост)
а можно пример именно "умных указателей" ?

Мне показалось, что речь идет об указателях не на void, а на конкретный тип.

Автор: mes 3.11.2010, 15:29
Цитата(Нитонисе @  3.11.2010,  10:54 Найти цитируемый пост)
Мне показалось, что речь идет об указателях не на void, а на конкретный тип. 

именно о таких.. 
 smile 

Автор: leniviy 3.11.2010, 16:04
Интересно, снесёт ему башку от такого кода:
Код

class circus;

class circus : std::vector<std::shared_ptr<circus> > {
};


Автор: mes 3.11.2010, 22:34
Цитата(leniviy @  3.11.2010,  15:04 Найти цитируемый пост)
 снесёт ему башку

кому ему ? компилятору ? если поддерживает упомянутые в коде типы, то подобную конструкцию откомпилит без проблем..
вот только нужна ли она программисту ?



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)