Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pincet
 Аватар для pincet
1204 / 774 / 82
Регистрация: 23.07.2010
Сообщений: 3,927
#1

Визуальное отображение иерархии - C++

08.05.2011, 18:43. Просмотров 462. Ответов 3
Метки нет (Все метки)

Затык небольшой.

C++
1
2
3
4
class foo {
protected:
        list<foo*>subfoo;
// blah-blah-blah
Каждый экземпляр класса может содержать непустой список из экземпляров такого же класса. Никак не догоню, как вывести на экран иерархию классов в виде:
C++
1
2
3
4
5
6
7
8
foo0
 -foo01
 -foo02
   -foo020
   -foo021
     -foo0210
     -foo0211
 -foo03
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2011, 18:43     Визуальное отображение иерархии
Посмотрите здесь:

C++ Трудности с организацией классовой иерархии
C++ Оператор вывода для иерархии
Визуальное программирование. Считывание теста C++
организация разветвленной иерархии классов C++
Классы и иерархии, одарите советами C++
Цепочка иерархии классов C++
C++ Затрудние в названии иерархии классов
Постоение иерархии наследования C++
Разработать визуальное оформление для программы C++
Создать иерархии наследования C++
Создание иерархии классов C++
C++ Найти ошибку в иерархии пользовательских классов

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.05.2011, 13:05     Визуальное отображение иерархии #2
pincet, рекурсивно обходить. На каждом вызове функции печатать табуляцию, имя очередного экземпляра и рекурсивно вызывать ту же функцию для всех элементов списка этого экземпляра.
pincet
 Аватар для pincet
1204 / 774 / 82
Регистрация: 23.07.2010
Сообщений: 3,927
09.05.2011, 15:08  [ТС]     Визуальное отображение иерархии #3
пока только так получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void Unit::showunits() {
    cout<<this->name<<endl;
    this->showunits(0);
};
void Unit::showunits(int i)  {
    list<Unit*>::iterator itr;
      for(itr=subunit.begin();itr!=subunit.end();++itr) {
       for(int j=0;j<i+1;j++) cout<<"-";
        cout<<(*itr)->name<<endl;   
          (*itr)->showunits(i+1);  
        }
}
както без параметра можно глубину рекурсии узнать?
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.05.2011, 15:16     Визуальное отображение иерархии #4
pincet, сомневаюсь... По крайней мере пока не получается придумать, как...
Yandex
Объявления
09.05.2011, 15:16     Визуальное отображение иерархии
Ответ Создать тему
Опции темы

Текущее время: 03:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru