Mam napisać program w C++ implementujący parę operacji na obiektach klasy wektor dwuwymiarowy. Więc stworzyłem coś co się kompiluje i działa poprawnie i listning zamieszczam poniżej:
#include <iostream.h>
#include <math.h>
//---------------------------------------------------------------------------
class wektor
{
public:
wektor();
wektor(float,float);
wektor operator+(wektor);
void dlugosc(void);
void wypisz(void);
private:
float x,y;
float norma;
};
wektor::wektor()
{
x = 0;
y = 0;
norma = 0;
}
wektor::wektor(float _x, float _y)
{
x = _x;
y = _y;
norma = 0;
}
wektor wektor::operator+(wektor w)
{
wektor wynik;
wynik.x = x+w.x;
wynik.y = y+w.y;
return wynik;
}
void wektor::dlugosc(void)
{
norma = sqrt(xx+yy);
}
void wektor::wypisz(void)
{
cout << " [" << x << "," << y << "] ";
cout << "||w||=" << norma << endl;
}
//-------------------------------------------------------------------------
void main(void)
{
wektor w1(2,2), w2(3,3), w3;
w1.dlugosc(); w1.wypisz();
w2.dlugosc(); w2.wypisz();
w3.dlugosc(); w3.wypisz();
w3 = w1 + w2;
w3.dlugosc(); w3.wypisz();
getchar();
}
//--------------------------------------------------------
Pytanko jest następujące: Czy ten kod jest w miarę optymalnie napisany? Może dałoby się tutaj coś skrócić albo napisac inaczej? Jestem po prostu nowicjuszem w programowaniu obiektowym i nie mam "sznytu" jak to się mówi...