imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 09.04.2006, 23:48     # 1
Kvarx
Member
 
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336

Kvarx Известность не заставит себя ждатьKvarx Известность не заставит себя ждать
перегрузка оператора+= в С++

Собственно сабж.
Пытался искать но ничего не нашел.

В книгах по С++ Страуструпа и Шилда такой случай не рассматривается, типа по аналогии легко догадаться. Но до меня че-то не может никак дойти.

Это бинарный оператор? Как тогда передает главный объект через *this или нет? Что возращать?
Kvarx вне форума  
Старый 10.04.2006, 06:07     # 2
gandalf_g
Junior Member
 
Регистрация: 09.12.2003
Адрес: Москва
Сообщения: 62

gandalf_g Путь к славе только начался
пример класса с перегруженным +=

Цитата:
#include <iostream>
using namespace std;

class Fraction
{
public:
Fraction(int num = 0, int den = 1)
{
this->num = num;
this->den = den;
}

Fraction& operator+=(const Fraction &rhs)
{
this->num = rhs.den * this->num +
this->den * rhs.num;
this->den = this->den * rhs.den;
return *this;
}

void print()
{
cout << num << "/" << den << endl;
}
private:
int num;
int den;
};

int main()
{
Fraction a(1,2);
Fraction c(1,1);

cout << "a is ";
a.print();
cout << endl;

cout << "c is ";
c.print();
cout << endl;

c += a;
cout << "c += a is ";
c.print();

return 0;
}
__________________
не учите людей думать, они вам этого не простят...
gandalf_g вне форума  
Старый 12.04.2006, 00:19     # 3
Kvarx
Member
 
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336

Kvarx Известность не заставит себя ждатьKvarx Известность не заставит себя ждать
Действительно, помогло.

Тогда еще вопрос по ходу. Написал я класс для работы с конечными поля.
Преподаватель сказал как-то давно, что плохо в основной проге
Цитата:
#include "GF2m.cpp"
так как инклуд для заголовочных файлов в основном. Как мне из класса сделать .lib .h файл?
Kvarx вне форума  
Старый 12.04.2006, 06:23     # 4
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
Kvarx
Для либы.
в заголовочном файле описываешь класс
делаешь отдельный проект, в который будет входить только класс с конечными полями и все что для него нужно.
устанавливаешь в свойствах проекта что это будет не приложение, а статическая библиотека.
собираешь проект.

Для основного проекта.
#include "GF2m.h"
в параметрах линкера указываешь дополнительно свою библиотеку, собранную ранее.

Если это всего 1 небольшой класс, то смысла выносить его в либу, по моему нет. А чтобы не писать #include "GF2m.cpp", достаточно просто писать #include "GF2m.h" и при компиляции компилировать GF2m.cpp и затем при линковке указывать созданный компилятором объектник. В MSVC это делатеся путем простого добавления *.cpp файлов в проект.
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:01.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.