Re: вопрос по контейнерам
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 21.06.08 18:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вопрос в том как правильно организовать итнерфейс например для модификации объекта класса A через класс С, не раскрывая доступ к private членам.


Ну только оксюморонить не надо. Ты хочешь модифицировать приватный член не предоставляя к нему доступ.

А>Выставление не константного итератора в классе C, делать бы не хотелось, а выставление константного приведет к тому, что весь интерфейс класса A и B придется продублировать в классе С.


Что-то глубоковато для непосредственной модификации A через С.

Ну если уж очень хочется, то можно что-то вроде такого:

class A
{};
class B
{
  public:
    void do_something(AKey akey, SomeData params)
    {
      // Поиск объекта A по ключу akey, результат - в переменной pA
      pA->... // что-то делаем
    }
   private:
     vector<A> vec_;
};
class C
{
  public:
    void do_something(BKey bkey, AKey akey, SomeData params)
    {
      // поиск объекта B по ключу bkey, результат - в переменной pB
      pB->do_something(akey, params)
    }
   private:
     vector<B> vec_;
};


BKey и AKey могут быть и индексами, и ещё чем угодно, пригодным для идентификации объекта в наборе.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.