Przeładowywanie operatora + w c++


(Kjanok) #1

mam sobie taką oto małą klasę

class forpi

	{

	private:

		vectorvalue;

	public:

		bool operator= (string x)

			{

			cout<
			for (int i=0; i
			}

		bool operator+ (forpi a, forpi b){}

	};

i mój problem polega na tym, że podczas kompilacji wywala mi, że bool operator+ (forpi, forpi) może przyjmować tylko 0 lub 1 argument. Jak mam dodawać do siebie dwie rzeczy jeśli będę miał tylko jeden argument?! to bez sensu!


(Sawyer47) #2

Jeśli deklarujesz operator w ciele klasy to 1 z porównywanych obiektów jest *this, a drugim ten przekazany w parametrze. Więc faktycznie masz nadmiarowy argument.


(Kjanok) #3

nawet na wiki było to opisywane, że mam to robić w taki sposób :confused:


(Sawyer47) #4

Można też zrobić globalny operator+ który przyjmuje dwa argumenty albo wewnątrz klasy który przyjmuje 1 argument.

Jeśli na Wikipedii było błędnie to lepiej popraw to.