Przeładowywanie operatora + w c++

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!

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.

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

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.