cześć wszystkim mam taki oto kod prostej klasy
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
class c_move
{
private:
double x;
double y;
public:
c_move(double a = 0, double b = 0);
c_move add (const c_move & m) const;
void showmove() const;
};
c_move::c_move(double a, double b)
{
x = a;
y = b;
}
c_move c_move::add(const c_move & m) const
{
double x_total = x + m.x;
double y_total = y + m.y;
c_move zmienna1(x_total, y_total);
return zmienna1;
}
void c_move::showmove() const
{
cout<< "x: " << x <<endl;
cout<< "y: " << y <<endl;
}
int main()
{
c_move zmienna1(5, 15);
c_move zmienna2(10, 20);
c_move zmienna3 = zmienna1.add(zmienna2);
zmienna3.showmove();
system("PAUSE");
}
czy możecie wytłumaczyć mi dlaczego wxdev++ nie wyrzuca błędu przy metodzie add? tworze w niej nowy obiekt klasy c_move inicjalizuje go wartościami obiektu wywołującego i przekazanego w parametrze i zwracam ten nowo utworzony obiekt jednak z tego co wyczytałem to taki obiekt jest usuwany z pamięci po opuszczeniu bloku i powinien wskazywać 'śmieci' dobrze mówię? bardzo proszę o krótkie wyjaśnienie pozdrawiam