witam, mam klasę punkt i związany z jej obsługą operator+. Potrzebuję wykonać działanie: punkt - ( innyPunkt + zupelnieInnyPunkt ). Dodatkowym założeniem jest to aby funkcja operatorowa nie zmieniała wartości swoich argumentów. Próbowałem tak:
point& operator+(const point& p1, const point& p2)
{
point temp;
temp._x=p1._x - p2._x;
temp._y=p1._y - p2._y;
return temp;
}
ale to rozwiązanie jest parszywe ze względu na zwracanie referencji do obiektu tymczasowego co kończy się wynikami z ... nazwijmy to błędnymi. Użycie wskaźnika i przydzielenie pamięci na stercie raczej nie wchodzi w grę bo takie działanie będzie wykonywane co najmniej kilkukrotnie. Wiązałoby się to z ciągłym kasowaniem przydzielonej pamięci czego chcę uniknąć. Zastanawiam się jak do tego podejść :)