IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> C++ работа с класами, описание функции через "operator", проблемы с вызовом функций
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской
Реальное имя: Олег

Репутация: -  0  +


нужна помощь по работе с классами ,
одно из условий задачи было , использовать "Operator" и const спецификатор

ниже код, собствено модуль я исправил так чтобы компилятор не ругался, а вызвать из main функцию(ранее бывшую AddBegin) с оператором не удаётся, да и у Страуструпа как-то ненахожу должных примеров

list.h

#ifndef CLASS_LIST
#define CLASS_LIST
class List
{
public:
List(void);
~List(void);
List& List::operator = (const int&); // tut ran'she bylo viod AddBegin(int);
void AddEnd(int);
void Sort(void);
void Print(void);
int GetNumberOfNodes(void);
private:
List *Head, *Tail, *next, *prev;;
int numberOfNodes, value;
};
#endif




list.cpp

#include <iostream>

using namespace std;

#include "list.h"

List::List(void)
{
this->Head = 0;
this->Tail = 0;
this->numberOfNodes = 0;
};

List::~List(void)
{
List *currentPointer = this->Tail, *temporaryPointer;
while ( currentPointer != 0 )
{
temporaryPointer = currentPointer;
currentPointer = currentPointer->prev;

delete(temporaryPointer);
}
delete(this->Tail);
};

List& List::operator = (const int& value); // tut bylo void List::AddBegin(const int value)
{
if ( this->Head == 0 )
{
this->Head = new List;
(this->Head)->value = value;
(this->Head)->prev = 0;
(this->Head)->next = 0;
(this->Tail) = (this->Head);
}
else
{
List *temporaryPointer = this->Head;

this->Head = new List;
(this->Head)->prev = 0;
(this->Head)->value = value;
temporaryPointer->prev = Head;
Head->next = temporaryPointer;
}
(this->numberOfNodes)++;
};

void List::AddEnd(const int value)
{
if ( this->Head == 0 )
{
this->Head = new List;
(this->Head)->value = value;
(this->Head)->prev = 0;
(this->Head)->next = 0;
(this->Tail) = (this->Head);
}
else
{
List *temporaryPointer = this->Tail;

this->Tail = new List;
(this->Tail)->next = 0;
(this->Tail)->value = value;
temporaryPointer->next = Tail;
Tail->prev = temporaryPointer;
}
(this->numberOfNodes)++;
};

void List::Sort(void)
{
List *Iter;
int Temp, number1, number2, SwapFlag = 1;

if (this->Head)
while (SwapFlag)
{
Iter = this->Head;
SwapFlag = 0;

while (Iter->next)
{
number1 = Iter->next->value;
number2 = Iter->value;

if (number1 < number2)
{
Temp = Iter->next->value;
Iter->next->value = Iter->value;
Iter->value = Temp;

SwapFlag = 1;
}

Iter = Iter->next;
}

}
}

int List::GetNumberOfNodes(void)
{
return :: operator this->numberOfNodes;
}

void List::Print(void)
{
for (List *temporaryPointer = this->Head; temporaryPointer != 0; temporaryPointer = temporaryPointer->next)
cout << temporaryPointer->value << "\n";
cout << "\n";
};



Сообщение отредактировано: mansoff -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 10:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name