Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2011, 00:29   #1
applegrub
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию Перегрузка операторов C++

Здравствуйте. Помогите решить задачу. Необходимо объявить перегруженные операторы вне класса.

class CData : public CStudent
{
public:
//объявление перегруженных операторов
bool operator > (const CData * rCData)
{
return (m_AverageScore > rCData->getAverageScore());
}

bool operator < (const CData * rCData)
{
return (m_AverageScore < rCData->getAverageScore());
}

bool operator == (const CData * rCData)
{
return (m_AverageScore == rCData->getAverageScore());
}

//метод сравнения
bool cmp (int, CData*);

CData () {} //конструктор
~CData (){} //деструктор
};

//вот здесь нужно объявить перегруженные операторы


Большое спасибо)))
applegrub вне форума Ответить с цитированием
Старый 20.12.2011, 00:35   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
class CData : public CStudent 
 {
 public:
 //объявление перегруженных операторов
 bool operator > (const CData * rCData);
 };

 bool CData::operator > (const CData * rCData)
 {
 return (m_AverageScore > rCData->getAverageScore());
 }
показал пример, остальное сами.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2011, 00:41   #3
applegrub
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
class CData : public CStudent 
 {
 public:
 //объявление перегруженных операторов
 bool operator > (const CData * rCData);
 };

 bool CData::operator > (const CData * rCData)
 {
 return (m_AverageScore > rCData->getAverageScore());
 }
показал пример, остальное сами.
Вот так нельзя. надо чтобы в классе перегрузки не было. мне по заданию требуется объявить перегрузку, не трогая класс.

class CData : public CStudent
{
public:

};

//вот здесь надо описать перегрузку
applegrub вне форума Ответить с цитированием
Старый 20.12.2011, 00:52   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ааа, извините немного не верно понял:
Код:
class CData : public CStudent 
 {

 };

 bool operator > (const CData& left,const CData& right)
 {
 return (left.getAverageScore()>right.getAverageScore());
 }
указатели в операторах это плохой тон(искл это чисто указательные типы, например char* и wchar_t*)
но тут у вас будет проблема с тем что метод не обьявлен константным:
решение 1)убрать const в обьявлении типов в функции оператора.
решение 2)назначить функции константными(не изменяющими обьект) (тырк1 пост №4)
правильно поидее второе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.12.2011, 01:04   #5
applegrub
Пользователь
 
Регистрация: 30.10.2011
Сообщений: 22
По умолчанию

Спасибо большое)))
applegrub вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перегрузка операторов _-Re@l-_ Паскаль, Turbo Pascal, PascalABC.NET 11 20.11.2010 13:23
Перегрузка операторов в С++ Purr Помощь студентам 0 09.10.2010 15:12
перегрузка операторов mashuta_ya Общие вопросы C/C++ 0 01.10.2010 18:54
Перегрузка операторов (С++) Перчитель Помощь студентам 1 03.12.2008 18:46
Перегрузка операторов, Организация перегрузки операторов chagin_yav Помощь студентам 2 12.05.2008 09:15