Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: CArray и указатели на элементы массива  (Прочитано 9998 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ezus
Опытный

il
Offline Offline

« : 03-06-2010 05:24 » 

Попробовал использовать темплайты и тут же наткнулся на непонимание.
Может быть кто-нибудь просветит ламера?

Имею:

Код:
CArray<CElement,CElement&> arr;

Надо передать этот массив в функцию:
Код:
bool ZReports::doReportsCommonBEs( CPtrArray* elements )

Как это не глупо звучит, но все мои попытки добыть адрес элементов из массива CArray остались без успеха.

Какая-то примитивная глупость, но НЭ ПОНИМАЮ   Не понял
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 03-06-2010 05:31 » 

а как ты добывал адрес то ?

А вообще, записи с шаблонами без введения нового типа получаются громоздкими. Можно так сделать:

Код:
typedef CArray<CElement,CElement&> td_MyArr;

td_MyArr m_MyArr;

bool ZReports::doReportsCommonBEs( td_MyArr* elements)
{
}

или я не правильно вопрос понял, похоже. Это у тебя ассоциативный список? Я обычно std::map применяю, с CArray не сталкивался...
« Последнее редактирование: 03-06-2010 05:34 от Алексей1153++ » Записан

ezus
Опытный

il
Offline Offline

« Ответ #2 : 03-06-2010 05:40 » 

Спасибо.

Как я и предполагал - это просто моя ...
Все ОК!

Надо вместо GetAt использовать [].

Вопос закрыт.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 03-06-2010 05:49 » 

ясно ) Но, всё-таки, коли ещё привычки не сложилось, присмотрись лучше к map - это стандарт в C++, в отличие от CArray
Записан

ezus
Опытный

il
Offline Offline

« Ответ #4 : 03-06-2010 05:54 » 

Спасибою
С МАРом у меня проблем не было,  а в данном случае это действительно тривиальный массив - список каких-то элементов.
Записан
Anchorite
Гость
« Ответ #5 : 03-06-2010 07:35 » 

помоему самым прстым способом было-бы сделать следующее:

Код:
bool ZReports::doReportsCommonBEs(const CArray<CElement,CElement&>& elements )

или если ребуется что-то поменять в elements внутри doReportsCommonBEs()

Код:
bool ZReports::doReportsCommonBEs(CArray<CElement,CElement&>& elements )
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 03-06-2010 08:18 » 

Anchorite, ну я и предложил указатель передать в функцию )
Записан

Anchorite
Гость
« Ответ #7 : 03-06-2010 12:53 » 

Указатель и ссылка немного разные вещи.
Ссылка не может быть NULL, а указатель может.

Что конкрентно лучше использоватьв данном случае может ответить только автор первого поста Улыбаюсь
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 03-06-2010 14:21 » 

Anchorite, лично для меня у них разница небольшая ) При желании можно и ссылку корявую передать

int* p=0;
F(*p);
Записан

Anchorite
Гость
« Ответ #9 : 04-06-2010 07:49 » 

Мы скатились к вопросу "Как много способов выстрелить в ногу в С/С++?"

Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 04-06-2010 07:53 » 

Anchorite, не, никак )
Записан

Anchorite
Гость
« Ответ #11 : 04-06-2010 11:39 » 

Это искаженная фраза Отца С++ Улыбаюсь

В оригинале она звучит так:
"C позволяет легко выстрелить себе в ногу; C++ делает это сложнее, но, когда вы это делаете, отстреливает всю вашу ногу."
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 04-06-2010 11:41 » new

язык то позволяет, а человек на то и приставлен к языку, чтоб не позволять Ага
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines