Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по спискам / 6 сообщений из 6, страница 1 из 1
25.01.2013, 11:27
    #38124325
Andrew_Bulkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по спискам
Вопрос в следующем, есть 2 разных класса, у которых есть по 1 одинаковому члену:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
class A
{
 public: 
  .......
  String name;
}

class B
{
 public: 
  .......
  String name;
}


Динамически создается список из этих классов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
A *a1 = new A();
A *a2 = new A();
B *b1 = new B();
TList * list = new TList();
list->Add(a1);
list->Add(a2);
list->Add(b1);


Как мне вытащить из списка объект у которого, к примеру name="Обьект" ?
...
Рейтинг: 0 / 0
25.01.2013, 11:51
    #38124368
Sheraton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по спискам
Вам список TList должен вам предоставить такую возможность.
...
Рейтинг: 0 / 0
25.01.2013, 11:52
    #38124369
Sheraton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по спискам
*Ваш
...
Рейтинг: 0 / 0
25.01.2013, 11:58
    #38124377
Andrew_Bulkin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по спискам
Sheraton,

Каким образом ? Там только по индексу обращение.
...
Рейтинг: 0 / 0
25.01.2013, 12:21
    #38124416
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по спискам
Andrew_Bulkin, сделай общего родителя
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
class parent
{
public:
        AnsiString name;

};

class A : public parent
{
public:
        A(AnsiString n)
        { name=n;}
};

class B : public parent
{
public:
        B(AnsiString n)
        { name=n;}
};
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        TList * list = new TList();
        list->Add(new A("a1"));
        list->Add(new A("a2"));
        list->Add(new B("b1"));

        for(int i=0;i<list->Count;i++)
        {
                Memo1->Lines->Add(((parent *)list->Items[i])->name);
        }
}
//---------------------------------------------------------------------------

...
Рейтинг: 0 / 0
28.01.2013, 12:05
    #38126998
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по спискам
Andrew_BulkinSheraton,

Каким образом ? Там только по индексу обращение.

Пройтись по списку, перебрать все его элементы и проверять условие.
Код будет твой.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вопрос по спискам / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]