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

Перегрузка оператора + - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не компилируется http://www.cyberforum.ru/cpp-beginners/thread942583.html
В среде MS Visual не хочет компилироваться даже то,что создано мастером автоматически. Снизу скрин. Также еще один глупый вопрос. Насколько я понял в книгах Бьерна Страустрапа , Либерти(которого тут не любят) описывается создание консольных приложений? А какой смысл в этом? Если сейчас программы все с GUI...??Или я с "высоты своего полёта" все не так понимаю? Не проще было бы сразу изучать...
C++ Отследить изменение реестра Привет, есть ли рабочий пример или кто-то поделиться теорией создания чтоб отследить любое изменение в реестре ? http://www.cyberforum.ru/cpp-beginners/thread942510.html
C++ Исключение для чисто виртуальной функции
Читал вопросы на собеседованиях по С++ и столкнулся с pure virtual function call исключение. Объясните пожалуйста зачем это нужно ?! В моем понимании чист. вирт. функц. созданая для того что бы никто не создавал объекты этого класса. Ссылка на источник http://habrahabr.ru/post/117996/ и копия ответа: 10. Как сгенерировать pure virtual function call исключение? Ответ: Нужно вызвать чисто...
C++ Странное поведение при переопределении operator++
Всем привет! Изучая переопределения в С++ наткнулся на следующую непонятку: #include <iostream> using namespace std; class Car { int * itsage; public:
C++ Как написать максимально оптимизированную функцию поиска длинны строки? http://www.cyberforum.ru/cpp-beginners/thread942451.html
Мысль о максимально оптимизированной функции длинны строки, где строка это указатель на литерал типа char. Не будем использовать не std::string, не std::wstring, не wchar_t в функцию передается указатель на строку, вот тело: int main() { char * str= "hello world"; int v = length(str); std::cout << v << std::endl; std::cin.get(); }
C++ Создание .exe Здравствуйте, я лишь неделю в программировании пытаюсь разбираться и соответственно вопросы мои могут показаться глупыми. Но столкнулся с проблемой что в Dev C++ что в NetBeans IDE при компеляции не создается файл exe. При чем если написать простую программку в стиле: #include <cstdlib> #include <iostream> #include <string> #include <ctime> #include <iomanip> using namespace std; подробнее

Показать сообщение отдельно
lanmitSM
0 / 0 / 0
Регистрация: 30.11.2011
Сообщений: 17
24.08.2013, 11:57  [ТС]     Перегрузка оператора +
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#include <iostream>
 
//enum ddd {kIsSmaller, kIsSame, kIsLarger};
 
bool Compare(const int & itsval,const int & val)
{
    if (itsval > val)
    return false;
    if (itsval < val)
    return true;
    else
    return false;
}
 
class Node;
class OrdNode;
class HeadNode;
class TailNode;
 
class Node
{
    public:
        Node() {}
        virtual ~Node() {};
        virtual Node* Insert(const int* theValue) = 0;
        virtual void Show() = 0;
    private:
};
 
class OrdNode : public Node
{
    public:
        OrdNode(const int* theValue, Node* next);
        virtual~OrdNode() {delete myValue; delete myNext;}
        virtual Node* Insert(const int*  theValue);
        virtual void Show() {std::cout << *myValue << std::endl; myNext -> Show();}
   private:
        const int* myValue;
        Node* myNext; 
};
 
OrdNode::OrdNode(const int* theValue, Node* next):
    myValue(theValue),
    myNext(next)
{
}
 
Node* OrdNode::Insert(const int* theValue)
{
    bool result = Compare(*myValue, *theValue);
    if (!result)
    {
        OrdNode* newnode = new OrdNode(theValue,this);
        return newnode;
    }
    else
    {
        myNext = myNext->Insert(theValue);
        return this;
    }
    return this; 
}
 
class TailNode : public Node
{
    public:
        TailNode() {}
        ~TailNode(){}
        virtual Node* Insert(const int* theValue);
        virtual void Show() {};
    private:
};
 
Node* TailNode::Insert(const int* theValue)
{
    OrdNode* newnode = new OrdNode(theValue, this);
    return newnode;
}
 
class HeadNode : public Node
{
    public:
        HeadNode();
        ~HeadNode();
        virtual Node* Insert(const int* theValue);
        virtual void Show() {myNext -> Show();}
    private:
        Node* myNext;
};
 
HeadNode::HeadNode()
{
    myNext = new TailNode;
}
 
HeadNode::~HeadNode()
{
    delete myNext;
}
 
Node* HeadNode::Insert(const int* theValue)
{
    myNext = myNext->Insert(theValue);
    return this;
}
 
class LList
{
    public:
        LList();
        ~LList();
        LList(const LList &  rhs);
        void Insert(const int* theValue);
        void ShowAll();
        LList operator+(const int* rhs);
    private:
        HeadNode* myHead;
};
 
LList::LList(const LList & rhs)
{
    myHead = rhs.myHead;
}
 
LList LList::operator+(const int* rhs)
{
     LList temp = *this;
     temp.Insert(rhs);
     return temp;
}
 
LList::LList()
{
    myHead = new HeadNode;
}
 
LList::~LList()
{
    delete myHead;
}
 
void LList::Insert(const int* theValue)
{
    myHead -> Insert(theValue);
}
 
void LList::ShowAll()
{
    myHead->Show();    
}
 
int main()
{
    system("chcp 1251");
    system("cls");
    LList ll;
    int * pData;
    int val;
    /*for (;;)
    {
        std::cout << "What value? (0 to stop): ";
        std::cin >> val;
        if (!val)
        {
            break;
        }
        pData = new int;
        *pData = val;
        ll.Insert(pData);
    }*/
    pData = new int;
    *pData = 0;
    ll = ll + pData;
    ll.ShowAll();
    system("pause");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru