Potrzebuje pomocy;/ siedzę już nad tym trzy dni, kopie w google i nic nie mogę znaleźć;/ mam do napisania przeładowanie operatorów dla klasy o nazwie wektor2d. Mam utworzyć operatory do takich działań:
1.[int][wektor2d]
2.[float][wektor2d]
3.[wektor2d][wektor2d]
4.[wektor2d][int]
5.[wektor2d]*[float]
6.[wektor2d][wekor2d] gdzie oznacza iloczyn skalarny
7.[wektor2d]-[wektor2d]
dla 3-ki i 7-ki potrafiłem przeciążyć operatory, ale dla reszty nie potrafię;/ jeśli ktoś potrafi pomóc to będę wdzięczny. Kiedy próbuje robić mnożenie stałej całkowitej przez wektor to mi błąd typów wyskakuje, dlaczego??;/ dlaczego także kiedy chce wprowadzić zmienną iteracyjną (i) i przypisze do niej int to tez mi wywala błąd?? dla mnie jest to bzdurą;/ Mogę także prosić o zrozumiały opis do tych kodów??;/
[CODE]
#include <cstdlib>
#include <iostream>
using namespace std;
class wektor2d
{
float x,y,w,z;
int s;
public:
friend ostream &operator<<(ostream &ost, wektor2d &wek);
wektor2d &operator*(wektor2d &wek)
{
return *(new wektor2d(x*wek.x, y*wek.y));
}
wektor2d operator=(wektor2d &wek)
{
x=wek.x;
y=wek.y;
}
wektor2d &operator-(wektor2d wek)
{
return *(new wektor2d(x-wek.x, y-wek.y));
}
wektor2d &operator+(wektor2d wek)
{
return *(new wektor2d(x+wek.x, y+wek.y));
/* wektor2d operator^(wektor2d wek) //iloczyn skalarny
{
w=0;
for (int i=1;i<=2;i++)
{w+=wek.x[i]*wek.y[i];}
return w;
}*/
wektor2d(float xx,float yy)
{
x=xx;
y=yy;
}
void wypisz()
{
cout<<x<<" "<<y;
}
wektor2d()
{
x=0;
y=0;
}
};
ostream &operator<<(ostream &ost, wektor2d &wek)
{
ost<<"["<<wek.x<<","<<wek.y<<"]";
return ost;
}
int main(int argc, char *argv[])
{
wektor2d c(0,0);
wektor2d v(7,11);
wektor2d w(8,10);
wektor2d d(2);
cout<<"Wypisuje podane wektory:\n";
cout<<"Wektor v: "<<"[";
v.wypisz();
cout<<"]\n"<<"Wektor w: [";
w.wypisz();
cout<<"]\n\n\n";
cout<<"Podany wektor jest suma v+v: ";
c=v+v;
cout<<c<<"\n";
cout<<"\nPodany wektor jest roznica v-w: ";
c=v-w;
cout<<c<<"\n";
cout<<"\nMnozenie wektorow przed stala liczbe w*2: ";
c=w*d;
cout<<c<<"\n";
cout<<"\nMnozenie wektorow przed stala liczbe v*2: ";
c=v*d;
cout<<c<<"\n";
cout<<"\nMnozenie wektorow przed stala liczbe 2*w: ";
c=d*w;
cout<<c<<"\n";
cout<<"\nMnozenie wektorow przed stala liczbe 2*v: ";
c=d*v;
cout<<c<<"\n";
cout<<"\nmnozenie v*w: ";
c=w*v;
cout<<c<<"\n";
cout<<"\n";
system("PAUSE");
return EXIT_SUCCESS;
}
[/CODE]