Wklejam program:
#include <iostream>
#include <math.h>
#include <cstdlib>
using namespace std;
class Punkt {
int wspx;
int wspy;
public:
Punkt()
{
}
Punkt(int x, int y)
{
wspx = x;
wspy = y;
}
int getx()
{
return wspx;
};
int gety()
{
return wspy;
};
};
class Wektor {
Punkt pktA;
Punkt pktB;
public:
Wektor(Punkt A, Punkt B)
{
pktA = A;
pktB = B;
}
double dlugosc()
{
double wynik;
double dlugosc, dlugosc2;
dlugosc = (pktB.getx() - pktA.getx()) * (pktB.getx() - pktA.getx());
dlugosc2 = (pktB.gety() - pktA.gety()) * (pktB.gety() - pktA.gety());
wynik = sqrt(dlugosc + dlugosc2);
return wynik;
}
double* dodawanie()
{
double tab[3];
tab[0] = pktA.getx() + pktB.getx();
tab[1] = pktA.gety() + pktB.gety();
return tab;
}
double odejmowanie()
{
double roznicax, roznicay, wynik3;
roznicax = pktB.getx() - pktA.getx();
roznicay = pktB.gety() - pktA.gety();
wynik3 = (roznicax, roznicay);
return wynik3;
}
double iloczyn()
{
double x, y, wynik4;
x = pktA.getx() * pktB.getx();
y = pktA.gety() * pktB.gety();
wynik4 = (x, y);
return wynik4;
}
};
int main()
{
Punkt pktA(2, 3);
Punkt pktB(3, 5);
Wektor wektA(pktA, pktB);
cout << wektA.dlugosc() << endl;
cout << wektA.dodawanie() << endl;
cout << wektA.odejmowanie() << endl;
cout << wektA.iloczyn() << endl;
return 0;
}
Wiem ,że wartość na stosie się resetuje ale jak zrobić ,żeby się nie resetowała?
Błąd: warning: address of local variable ‘tab’ returned [-Wreturn-local-addr]
double tab[3];