Перегрузка операторов с применением функции friend C++ ООП

 
#include <iostream>
using namespace std;

class Coordinates {
	int _x, _y, _z;
public:
	Coordinates() { _x = _y = _z = 0; }
	Coordinates(int a, int b, int c) {
		_x = a;
		_y = b;
		_z = c;
	}
	friend Coordinates operator+(Coordinates obj1, Coordinates obj2);
	void show() { cout << _x << "  " << _y << "  " << _z << endl; }
};

Coordinates operator+(Coordinates obj1, Coordinates obj2) {
	Coordinates temp;
	temp._x = obj1._x + obj2._x;
	temp._y = obj1._y + obj2._y;
	temp._z = obj1._z + obj2._z;
	return temp;
};

void main()
{
	setlocale(LC_ALL, "Rus");

	Coordinates a(1, 2, 3), b(4, 5, 6), c;
	a.show(); // 1 2 3
	b.show(); // 4  5 6
	c = a + b; 
	c.show(); // 5 7 9

	system("pause");
}

Результата работы программы — Перегрузка операторов с использованием дружественной функции friend на C++ (Объектно-ориентированное программирование)
Перегрузка операторов с применением функции friend C++

Также функция friend не имеет указателя this

 
#include <iostream>
using namespace std;

class Myclass {
	int _x; 
	int _y;
public:
	Myclass(int x, int y) { _x = x; _y = y; }
	friend int multiplier(Myclass ob);
};
int multiplier(Myclass obj) {
	int max = obj._x < obj._y ? obj._y : obj._x;
	return max;
}
void main()
{
	setlocale(LC_ALL, "Rus");

	Myclass obj(3, 77); // 77
	cout << multiplier(obj) << endl;

	system("pause");
}

Результата работы программы
friend не имеет указателя this пример

55

Leave a Reply

Ваш адрес email не будет опубликован.