Przeładowanie operatorów parę pytań

0

Witam!
Chciał bym się dowiedzieć jak do przeładowanego operatora przypisania wpisać stałą wartość, mam taki kawałek kodu:

 //---------------------------------------------------------------------------
class A {
private:
	int a, b;
	const int c;
public:
//----------------------------Konstruktory----------------------------------
	A(void);
	A(const A &wzor);
//----------------------Przeładowanie operatorów----------------------------
	A& operator=(const A &wzor)
};
//---------------------------------------------------------------------------
A::A(const A &wzor) : c(wzor.c)  // tutaj podstawienie w liście inicjalizacyjnej
{                                // działa bez problemu
	a = wzor.a;
	b = wzor.b;
}
//---------------------------------------------------------------------------
A& A::operator=(const A &wzor) //: c(wzor.c) - Niestety taki zapis nie działa!
{
	if (this == &wzor)		//sprawdzam czy nie przypisujemy A = A
		return *this;
	a = wzor.a;
	b = wzor.b;
	return *this;
}
//---------------------------------------------------------------------------

A także mógł by mi ktoś powiedzieć co oznacza słowo const(to na końcu) przy takiej deklaracje:
​T T::operator +(const T& b) const;

0

Pierwsze: po zainicjalizowaniu stałej nie można jej już zmieniać wartości. W końcu jest "stała". ;)
Drugie: http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.10

edit: Lista inicjalizacyjna działa tylko przy konstruktorach, ten kopiujący możesz napisać tak:

A::A(const A &wzor) : a(wzor.a), b(wzor.b), c(wzor.c) {}

1 użytkowników online, w tym zalogowanych: 0, gości: 1