Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хелп, Как работает эта программа?  
:(
    Опции темы
BaHguT
Дата 7.5.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



//Это только чать кода программы
//Программа создает базу данных нже описано как она это делает
//Писал не я прошу вас помочь мне в ней немного разобраться а имменно в 
//1 строчке плззз см ниже... За ранее спасибо
// ели нужен весь код пишите вышлю... (она работает)


#include <vector>
#include <string>
#include <iostream>
using namespace std;

class Leaf;

class Component
{
public:
//All functions are virtual, because we will redefine them later;
virtual void traverse()=0;
virtual int GetNumber()
{
return -1;
}
virtual string GetName()
{
return "NULL";
}
virtual void add(Component*)
{
}
virtual void PushBack(Leaf*)
{
}
};

class Leaf : public Component 
{
public:
string discription;//String, in which we will set data about person
void traverse() 

cout << discription << ' '; 
}

};

struct Query
{
int Facultet;
int Group;
string Name;
vector<Leaf*> Discription;
};
/////Facultet
///// |
///// Group 
///// |
/////Student
//// |
//// Leaf
//// Leaf is a vector, that contains information about student

class Composite : public Component 
{
public:
void query(Query q,Composite* com, int RecLevel=0);//Recursion level is 0 - we want to look in all tree
vector<Composite*> Child;
void add( Composite* Element ) 
{
Child.push_back( Element ); 
}
void traverse() 
{
int i=0;
for (i=0; i < Child.size(); i++)
Child[i]->traverse(); //<<<<<< ЧТО ДЕЛАЕТ ЭТА СТРОЧКА
}
};

PM MAIL   Вверх
Greeen
Дата 7.5.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 10
Всего: 18



Цитата(BaHguT @  7.5.2007,  12:33 Найти цитируемый пост)
Child[i]->traverse(); //<<<<<< ЧТО ДЕЛАЕТ ЭТА СТРОЧКА

вызывает метод traverse() каждого объекта класса Composite находящегося в векторе Child.

Добавлено через 34 секунды
То есть саму себя  smile 


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Earnest
Дата 7.5.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(Greeen @  7.5.2007,  13:45 Найти цитируемый пост)
То есть саму себя  

Ну не себя, конечно, а вариант для каждого чайлда. Идея такая: чтобы сделать нечто с композитом, нужно проделать это нечто со всеми его составляющими. Логично, в общем.



--------------------
...
PM   Вверх
Samotnik
Дата 7.5.2007, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

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



2 BaHguT
В следущий раз, вставляйте плз програмный код в "Код"  !

А на сичет вопроса, помойму, не так и сложно: функция  вызывается, для каждого  i го  элемента (т.е. для каждого по элементно) и производит какую нить операцию с каждым элементом!!!!! И по мойму это не совсем рекурсия, поэтому вряд ли она вызывает саму сибя 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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