Вот решил выложить код. Пытаясь что бы Начинающие могли в любой момент что то для себя найти тут на нашем форуме
Вот собственно код : Все но языке С++
Код:
// Перегрузка оператора + относительно класса coord
#include <iostream>
using namespace std;
class coord {
int x,y; // значения координат
public:
coord() { x = 0; y= 0; }
coord(int i, int j) { x = i; y = j; }
void get_xy(int &i, int &j) { i = x; j = y; }
coord operator+(coord ob2);
};
// Перегрузка оператора + относительно класса coord
coord coord::operator+(coord ob2)
{
coord temp;
temp.x = x +ob2.x;
temp.y = y +ob2.y;
return temp;
}
int main()
{
coord o1(10, 10), o2(5, 3), o3;
int x, y;
o3 = o1 + o2; // сложение двух объектов - вызов функции operator+()
o3.get_xy(x, y);
cout << "(o1 + o2) X: " << x << ", Y: " << y << "\n";
return 0;
}
Вот еще вариант :
Код:
// Перегрузка операторов +, - и = относительно класса coord
#include <iostream>
using namespace std;
class coord {
int x, y; // значения координат
public:
coord() { x = 0; y= 0; }
coord(int i, int j) { x = i; y = j; }
void get_xy(int &i, int &j) { i = x; j = y; }
coord operator+(coord ob2);
coord operator-(coord ob2);
coord operator=(coord ob2);
};
// Перегрузка оператора + относительно класса coord
coord coord::operator+(coord ob2)
{
coord temp;
temp.x = x + ob2.x;
temp.y = y + ob2.y;
return temp;
}
// Перегрузка оператора - относительно класса coord
coord coord::operator-(coord ob2)
{
coord temp;
temp.x = x - ob2.x;
temp.y = y - ob2.y;
return temp;
}
// Перегрузка оператора = относительно класса coord
coord coord::operator=(coord ob2)
{
x = ob2.x;
y = ob2.y;
return *this; // возвращение объекта, которому присвоено значение
}
int main()
{
coord o1(10, 10), o2(5, 3), o3;
int x, y;
o3 = o1 + o2; // сложение двух объектов - вызов функции operator+()
o3.get_xy(x, y);
cout << "(o1 + o2) X: " << x << ", Y: " << y << "\n";
o3 = o1 - o2; // вычитание двух объектов - вызов функции operator-()
o3.get_xy(x, y);
cout << "(o1 - o2) X: " << x << ", Y: " << y << "\n";
o3 = o1; // присваивание объекта- вызов функции operator=()
o3.get_xy(x, y);
cout << "(o3 = o1) X: " << x << ", Y: " << y << "\n";
return 0;
}
И еще один выберайте смотрите спрашивайте....
Код:
// Перегрузка оператора + как для операции ob+ob,
// так и для операции ob+int
#include <iostream>
using namespace std;
class coord {
int x, y; // значения координат
public:
coord() { x = 0; y= 0; }
coord(int i, int j) { x = i; y = j; }
void get_xy(int &i, int &j) { i = x; j = y; }
coord operator+(coord ob2); // ob + ob
coord operator+(int i); // ob + int
};
// Перегрузка оператора + относительно класса coord
coord coord::operator+(coord ob2)
{
coord temp;
temp.x = x +ob2.x;
temp.y = y +ob2.y;
return temp;
}
// Перегрузка оператора + для операции ob+int
coord coord::operator+(int i)
{
coord temp;
temp.x = x +i;
temp.y = y +i;
return temp;
}
int main()
{
coord o1(10, 10), o2(5, 3), o3;
int x, y;
o3 = o1 + o2; // сложение двух объектов
// вызов функции operator+(coord)
o3.get_xy(x, y);
cout << "(o1 + o2) X: " << x << ", Y: " << y << "\n";
o3 = o1 + 100; // сложение объекта и целого
// вызов функции operator+(int)
o3.get_xy(x, y);
cout << "(o1 + 100) X: " << x << ", Y: " << y << "\n";
return 0;
}
Последний раз редактировалось daff26; 20.02.2012 в 17:17.