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

Ошибка с классами - C++

Восстановить пароль Регистрация
 
Coverete
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 38
01.02.2013, 14:51     Ошибка с классами #1
Здравствуйте, не могли бы вы мне помочь, дороги форумчане, ошибка связанная с динамикой здесь у меня.
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
#include "stdafx.h"
typedef enum{con,exp,log,pow,sin,cos,tan,cot,sec,csc,sinh,cosh,tanh,coth,sech,csch} simpleElementaryFunctions;
typedef enum{add,sub,mul,div,lbr,rbr,nos} sign;
 
class ElementaryFunctions
{
    simpleElementaryFunctions Element;
    ElementaryFunctions *Argument;
    sign ElementSign;
    ElementaryFunctions *Next; 
 
public:
    void DefineArgument()
    {
        Argument = new ElementaryFunctions;
        Argument->Element = con;
        Argument->ElementSign = nos;
        Argument->Next = nullptr;
    }
    ElementaryFunctions() 
    {
        Element = con;
        DefineArgument();
        Next = new ElementaryFunctions;
        Next = nullptr;
        ElementSign=nos;
    }
 
 
};
 
int main()
{
    ElementaryFunctions func;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2013, 14:51     Ошибка с классами
Посмотрите здесь:

Работа с классами C++
Проблема с Классами C++
C++ Работа с классами
C++ Ошибка в работе с классами
Работа с классами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
01.02.2013, 14:54     Ошибка с классами #2
Ну так у тебя бесконечный рекурсивный вызов конструктора ElementaryFunctions.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
01.02.2013, 15:54     Ошибка с классами #3
ага! и сразу потеря выделенной памяти, даже если б у рекурсии был конец
Coverete
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 38
01.02.2013, 16:03  [ТС]     Ошибка с классами #4
А как лучше всего здесь исправить?
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
01.02.2013, 16:05     Ошибка с классами #5
Цитата Сообщение от Coverete Посмотреть сообщение
А как лучше всего здесь исправить?
Сесть, хорошенько подумать, чего ты хочешь от этого класса, а потом всё переписать.
Coverete
1 / 1 / 0
Регистрация: 26.09.2012
Сообщений: 38
01.02.2013, 16:33  [ТС]     Ошибка с классами #6
Решил исправит, спасибо!
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
#include "stdafx.h"
 
typedef enum{con,exp,log,pow,sin,cos,tan,cot,sec,csc,sinh,cosh,tanh,coth,sech,csch} simpleElementaryFunctions;
typedef enum{add,sub,mul,div,lbr,rbr,nos} sign;
struct Node
{
  simpleElementaryFunctions Element;
  sign ElementSign;
  Node *Argument;
  Node *Next;
};
 
class ElementaryFunctions
{
    Node *root;
 
 
 
public:
 
    ElementaryFunctions() 
    {
        root = new Node;
        root->Element = con;
        root->ElementSign = nos;
        root->Next = nullptr;
        root->Argument = new Node;
        root->Argument->Element = con;
        root->Argument->ElementSign = nos;
        root->Argument->Next = nullptr;
    }
 
};
 
int main()
{
    ElementaryFunctions func;
    return 0;
}
Yandex
Объявления
01.02.2013, 16:33     Ошибка с классами
Ответ Создать тему
Опции темы

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