Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> действительно константная ссылка 
:(
    Опции темы
chipset
Дата 8.4.2005, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



С отображенными файлами вроде точно такое можно сделать..
Про кучи, только что глянул, что-то очень сомнительная HeapLock да и то от других процессов..
Будем дальше думать.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
chipset
Дата 8.4.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 27
Всего: 165



Здесь показан пример использования отображения как разделяемой памяти.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Fire-Plug
Дата 10.4.2005, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 15.3.2005

Репутация: -1
Всего: 0



Цитата(_hunter @ 8.4.2005, 17:39)
а если я из модуля отдаю вектор в твердой уверенности что с ним ничего не сделают. а он пустым оказывается... ( это, пока, все на уровне теорий, но всеравно неприятно... )

Нехорошо это, внутренние переменные нетривиального содержания из класса наружу отдавать. Это же не совсем аналогично ситуации вида: size_t someclass:size() const; А как же инкапсуляция?
Ежели какому-то классу-клиенту этот вектор нужен для принципиальных целей, то это должен быть его атрибут. И он будет передавать его по ссылке методу класса-хэлпера, к-рый знает, например, как этот вектор заполнить (ну, скажем, прочти чего-то из конфигурации, посчитай, найди и т.д. и т.п и положи в этот вектор).
Если предложенная модель не годится, то иногда удобнее сдублировать часть интерфейса вектора в его классе-контейнере. Например,
Код

class MyVeryImportantVector
{
typedef vector<SomeImportantCalss> TVectVeryImportant;
    TVectVeryImportant m_myVect;
public:
    typedef TVectVeryImportant::const_iterator const_iterator;
    typedef TVectVeryImportant::size_type size_type;

    const_iterator begin() const { return m_myVect.begin(); }
    const_iterator end  () const { return m_myVect.end(); }

    size_type     size () const { return m_myVect.size(); }

    const SomeImportantCalss& operator[size_t idx] const { return m_myVect[idx]; }
};
Немного громоздко, но никто с очень важным вектором не сделает более того, что позволено.

Добавлено @ 08:41
Цитата(chipset @ 8.4.2005, 16:51)
Если хочешь - можешь попробовать обернуть вектор в враппер запрещающий использовать изменяющие функции, хотя это конечно жуткий гемморой..

Во, блин, как плохо читать постинги через один! chipset уже эту идею предложил...
--------------------
Объясни другому - поймешь сам (Народная примета)
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.