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

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

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

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

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

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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2011, 10:35
Ответы с готовыми решениями:

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

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

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

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

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

Не по теме:

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

1
23.01.2011, 13:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2011, 13:11
Помогаю со студенческими работами здесь

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

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

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

Рекурсивная функция
Пожалуйста как сделать рекурсию функции my_ln? int main() { setlocale(LC_ALL,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru