sınıf operator+
, boğan o const beyan edilmelidir? Ayrıca, atama yapılır çünkü operator=
ve operator+=
başvuru döndürmek biliyoruz. Peki ya operator+
? Uyguladığımda, geçerli nesnenin bir kopyasını almalı, verilen nesneyi buna eklemeli ve bu değeri mi vermeliyim?C++ - Operatör + `const yapmalı mıyım? Ve bir referans döndürüyor mu? o nesne üzerinde herhangi atama yapmaz çünkü
class Point
{
public:
int x, int y;
Point& operator += (const Point& other) {
X += other.x;
Y += other.y;
return *this;
}
// The above seems pretty straightforward to me, but what about this?:
Point operator + (const Point& other) const { // Should this be const?
Point copy;
copy.x = x + other.x;
copy.y = y + other.y;
return copy;
}
};
bu operator+
doğru bir uygulama mı: İşte
ben ne var? Ya da dert ya da istenmeyen/tanımlanmamış davranışlara neden olabilecek bir şey var mı? Daha da iyisi
Birçok ayrıntıları burada bulabilirsiniz: http://stackoverflow.com/questions/4421706/operator-overloading – chris