Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 21.01.2011
Сообщений: 3

Рекурсивная функция внутри класса

23.01.2011, 10:35. Показов 1016. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе утро!
Задание такое: необходимо создать класс - "Звезды". У каждой звезды есть имя, диаметр. А ещё у звёзд есть элементы (планеты), которые вокруг звезд вращаются. У элементов, в свою очередь, тоже есть элементы, которые вокруг них вращаются (у планет спутники), а элементов элементов есть тоже элементы (астероиды, которые вращаются вокруг спутников планет), а у элементов элементов элементов.. ну, в общем, я думаю, суть ясна для создания этого должна быть использована рекурсивная функция
Помогите пожалуйста

внешним видом код должен быть похож на вот этот

C++
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include "stdafx.h"
class Photos
{
  protected:
    char *name,*author;
    int year;
  public:
      Photos(){name=0;author=0;year=0;}  //конструктор:
      Photos(char *n, char *a,int y){
          if(y>1826 && y<2100)year=y;else year=0;      //??
      name=new char[strlen(n)+1];
      strcpy(name,n);
      author=new char[strlen(a)+1];
      strcpy(author,a);
      } 
      //деструктор:
      ~Photos(){
          if(name!=0)delete [] name;
          if(author!=0)delete [] author;
      }
      int GetYear(){return year;}
      void SetYear( int y){if(y>1500 && y<2100)year=y;else year=0;}
      char *GetName(){return name;}
      void SetName(char *n){
          if(name!=0)delete [] name;
          name=new char[strlen(n)+1];
      strcpy(name,n);
      }
 
      char *GetAuthor(){return author;}
      void SetAuthor(char *a){
          if(author!=0)delete [] author;
          author=new char[strlen(a)+1];
      strcpy(author,a);
      }
//   virtual void View()=0;
     };
class Landscape:public Photos
{
        char *place;
    public:
        Landscape():Photos(){place=0;}
        Landscape(char *n, char *a,int y,char *p):Photos(n,a,y)
        {
                place=new char[strlen(p)+1];
                strcpy(place,p);
        }
         char *GetPlace(){return place;}
      void SetPlace(char *p){
          if(place!=0)delete [] place;
          place=new char[strlen(p)+1];
      strcpy(place,p);
      }
      void Print();
//destructor
      ~Landscape()
      {
           if(place!=0)delete [] place;
      }
};
class Portrait:public Photos
{
        char *person;
    public:
        Portrait():Photos(){person=0;}
        Portrait(char *n, char *a,int y,char *pr):Photos(n,a,y)
        {
                person=new char[strlen(pr)+1];
                strcpy(person,pr);
        }
         char *GetPerson(){return person;}
      void SetPerson(char *pr){
          if(person!=0)delete [] person;
          person=new char[strlen(pr)+1];
      strcpy(person,pr);
      }
      void Print();
//destructor
      ~Portrait(){
           if(person!=0)delete [] person;
      }
        
};
 
class Macro:public Photos
{       double distance;
    public:
        Macro():Photos(){distance=0;}
        Macro(char *n, char *a,int y,double d):Photos(n,a,y)
        { 
            if(d>0 && d<15)distance=d;
            else d=0;
        }
         double GetDistance(){return distance;}
      double SetDistance(double d)
      {
        if(d>0 && d<15)distance=d;
        else d=0;
      }
      void Print();
      
      
};
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2011, 10:35
Ответы с готовыми решениями:

Функция внутри класса
Здраствуйте. Очень прошу знающих людей помочь мне. Покажите простой пример - Класс, внутри этого класса функция, которая вычисляет квадрат...

Pthread функция потока внутри класса
Нужно чтобы функция pthread_create принимала на входе функцию-член класса, в котором я вызываю pthread_create собственно. Так сделать не...

Функция указатель на класс, определенный внутри шаблонного класса
Доброго времени суток! Помогите пожалуйста разобрать со следующим кодом: template &lt;class T&gt; class List{ class Node{ ...

2
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
23.01.2011, 11:30
Так а что нужно-то от нас? Ну есть звёзды, вращаются вокруг них планеты, вокруг планет - спутники... Круто. А что нужно сделать-то?
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
23.01.2011, 13:11
Не вижу, как с помощью вышеприведенных классов создавать вращающиеся объекты.

Не по теме:

Цитата Сообщение от Arwres Посмотреть сообщение
внешним видом код должен быть похож на вот этот
Вряд ли кто-то будет за так подстраиваться под ваш "стиль". Придется вам переписывать под себя.

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2011, 13:11
Помогаю со студенческими работами здесь

Класс: Почему этот operator+ не хочет работать как функция внутри класса?
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class complex{ private: int re, im; public: complex(int r,...

У меня класс B в классе A, а в классе B рекурсивная функция переопределения оператора "()", как её вызвать, не создавая явно объект класса B?
#include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; //Вот главный класс class A{ public: A (){}; class...

Создать объект внутри класса, который может вызывать функцию этого класса
Ребята помогите уже несколько дней мучаюсь. Хочу сделать программу в консоле демонстрации работы лифта в здании 2 этажа. Сделал класс...

Наследование: Как мне определить любой из методов заданного класса внутри другого класса?
Добрый день, подскажите пожалуйста, что я делаю не так Есть файл Container.h в котором храню прототипы методов class Container ...

Рекурсивная функция
Пожалуйста как сделать рекурсию функции my_ln? int main() { setlocale(LC_ALL, &quot;Russian_Russia.1251&quot;); double y1, y2, x,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru