C++ przeciążanie operatora przypisania


(Blady214) #1

Witam,

muszę na jutro wykonać projekt na zaliczenie i niestety utknąłem w martwym punkcie, dlatego liczę na waszą pomoc. Potrzebuję przeciążyć operator przypisania wewnątrz klasy shop:

class shop

{

	friend void findProduct(); //funkcja wyszukująca produkty

public:

	shop();

	~shop();

	void shopMenu();

	friend void dispMin();

	friend void addToChain();

	//operatory

	shop & operator=(const shop *sklp);

	friend ostream & operator<< (ostream &output, shop *&sklp);

	friend istream &operator>> (istream &input, shop *sklp);

private:

	int id;

	string name;

	address shopAddress;

	hours o_hour;

	int depNumber; //ilosc dzialow

	bool closedByUser;

	dzial **dep;

	bool dni_tygodni[8]; 

};

Mój operator wygląda w ten sposób:

shop & shop::operator=(const shop *sklp)

{

	//id = shops++;

	name = sklp->name;

	o_hour = sklp->o_hour;

	dni_tygodni[8] = sklp->dni_tygodni;


	cout<<"Przepisano!\n";

	return *this;

}

Dodatkowo w programie mam zdefiniowaną dynamiczną tablicę wskaźników typu shop, czyli shop **sklep;

Każdorazowo przy próbie wywołania sklep = sklep[i+1] Odwołuję się do domyślnego operatora przypisania. W jaki sposób odwołać się do przeciążonego.

Mimo wszystko ten operator mi nie pasuje, chciałbym zrobić operator, który umożliwiłby mi operację sklep = 1 i w tym momencie do wartości closedByUser przypisywana byłaby wartość 1 i analogicznie dla warości 0. Jak taki operator stworzyć?


(Rolek0) #2

Przypisujesz wskaźniki :wink:


(Blady214) #3

Jak zrobić, że mój przeciążony operator działa ze wskaźnikami?

Dodane 08.02.2013 (Pt) 22:52

Dobra, poradziłem sobie, temat do zamknięcia. Co prawda zrealizowałem drugą opcję, czyli:

operator, który umożliwiłby mi operację sklep[i] = 1 i w tym momencie do wartości closedByUser przypisywana byłaby wartość 1 i analogicznie dla warości 0. Jak taki operator stworzyć?

Temat do zamknięcia.