Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Перегрузка оператора как friend-функцию, В чем ошибка?! 
V
    Опции темы
Weman
Дата 1.12.2007, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.11.2005
Где: Санкт-Петрбург

Репутация: нет
Всего: нет



Здравствуйте! Помогите найти ошибку!

Постановка задачи: создать класс координат. Определить оператор + как функцию-член и - как дружественную функцию. Сложить, вычесть координаты друг с другом и с числом.

В этом задании необходимо использовать перегрузку операторов =)
Класс описал так:
Код

class Koordinates {
    int x, y;
    public:
        Koordinates() {x=0,y=0;}; //конструктор    
        Koordinates operator+ (Koordinates t); // функция-член класса
        Koordinates operator+ (int num); 
        friend Koordinates operator- (Koordinates t1, Koordinates t2); //friend функция
        friend Koordinates operator- (Koordinates t1, int num); 
        .....
        };


Функции описал так:
Код

//элемент_класса + элемент_класса
Koordinates Koordinates::operator+ (Koordinates t){
   Koordinates temp;
   temp.x = x + t.x;
   temp.y = y + t.y;
   return temp;
};
//элемент_класса + число
Koordinates Koordinates::operator+ (int num){
   Koordinates temp;
   temp.x = x + num;
   temp.y = y + num;
   return temp;
};

//элемент_класса - элемент_класса
Koordinates operator- (Koordinates t1, Koordinates t2){
   Koordinates temp;
   temp.x = t1.x - t2.x;
   temp.y = t1.y - t2.y;
   return temp;
};
//элемент_класса - число
Koordinates operator- (Koordinates t1, int num){
   Koordinates temp;
   temp.x = t1.x - num;
   temp.y = t1.y - num;
   return temp;
}


При компиляции почему выдается ошибка :
Код

fatal error C1001: INTERNAL COMPILER ERROR


Не могу понять, что я неправильно сделал! Подскажите пожалуйста! =)

Добавлено через 4 минуты и 46 секунд
Забыл добавить, что ошибка выдается на строке:
Код

friend Koordinates operator- (Koordinates t1, Koordinates t2); //friend функция

--------------------
PM MAIL ICQ   Вверх
orthrus
Дата 1.12.2007, 20:52 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 400
Регистрация: 30.10.2007
Где: г. Усть-Илимск(Ир кутская обл.)

Репутация: нет
Всего: 16



Компилятор глючит? Попробуй другой компилятор. У меня на gcc-4.1.2 скомпилилось нормально.


--------------------
У того, кто ничего не делает, всегда много помощников.© Л.Н. Толстой
user posted image
PM MAIL ICQ   Вверх
JackYF
Дата 2.12.2007, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(Weman @  1.12.2007,  20:21 Найти цитируемый пост)
fatal error C1001: INTERNAL COMPILER ERROR

говорит об ошибке компилятора, а не твоей. Совет в этом случае один - сменить компилятор smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Weman
Дата 2.12.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.11.2005
Где: Санкт-Петрбург

Репутация: нет
Всего: нет



Поставил другой компилятор, все заработало! =) Спасибо за помощь!
--------------------
PM MAIL ICQ   Вверх
zkv
Дата 2.12.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Weman, скажи хоть, что за компилер такой был?
PM MAIL   Вверх
JackYF
Дата 2.12.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(zkv @  2.12.2007,  14:52 Найти цитируемый пост)
Weman, скажи хоть, что за компилер такой был? 

Дайте я угадаю с двух раз - либо 5/6 билдер, либо 6-ая студия smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
zkv
Дата 2.12.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(JackYF @  2.12.2007,  14:54 Найти цитируемый пост)
Дайте я угадаю с двух раз - либо 5/6 билдер, либо 6-ая студия

опять тотализатор?  smile 
PM MAIL   Вверх
JackYF
Дата 2.12.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(zkv @  2.12.2007,  15:11 Найти цитируемый пост)
опять тотализатор?

 smile А как же. smile




--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Fazil6
Дата 2.12.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Цитата(Weman @  1.12.2007,  20:21 Найти цитируемый пост)
fatal error C1001: INTERNAL COMPILER ERROR

это сообщение от VS
PM MAIL   Вверх
Weman
Дата 2.12.2007, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 29.11.2005
Где: Санкт-Петрбург

Репутация: нет
Всего: нет



Компилятор был Visual Studia 6 =)
Установил 2005 Студию - все отлично пашет! =)
--------------------
PM MAIL ICQ   Вверх
JackYF
Дата 2.12.2007, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(JackYF @  2.12.2007,  14:54 Найти цитируемый пост)
либо 6-ая студия

Цитата(Weman @  2.12.2007,  21:00 Найти цитируемый пост)
Компилятор был Visual Studia 6 =)

 smile  да, я угадал smile где мой приз?  smile 



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Vyacheslav
Дата 3.12.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



 smile 
Цитата(JackYF @  2.12.2007,  14:54 Найти цитируемый пост)
Дайте я угадаю с двух раз - либо 5/6 билдер, либо 6-ая студия 

-Какой стороной выпадет монетка?
-Дайте я угадаю с двух раз -  либо орел, либо решка.

smile 






--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
JackYF
Дата 3.12.2007, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Vyacheslav,  smile вариантов было всё-таки больше двух ;)


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.