Funkcja zwracająca w klasie

0

Witam!
Mam napisać taki mały programik o współrzędnych x i y . Stworzyłem klasę konstruktor domyślny,konstruktor dwuargumentowy i funkcję wyświetlającą za pomocą przeładowania operatora. Pozostała mi jeszcze do napisania funkcja zwracająca wartość x i y oraz zapisująca nową wartość tych punktów. Nie wiem za bardzo w jaki sposób to zrobić dlatego proszę o pomoc.

#include "stdafx.h"
#include <iostream>
using namespace std;

class punkt
{
float pointx;
float pointy;
public:
    punkt()
    {
        pointx=0;
        pointy=0;
    }
friend  ostream & operator << (ostream &ekran,punkt z);
    punkt(float x ,float y);

};
punkt::punkt(float x, float y)
{
    pointx=x;
    pointy=y;
}

ostream & operator << (ostream &ekran,punkt z)
{
    cout << z.pointx << "," << z.pointy ;
    return ekran;
}
int main()
{
    punkt P(5,2);
    cout<<P;
  return 0;
} 
0

Tyle napisales a nie wiesz jak zrobic metody

int punkt::getX() const ;
void punkt::setX(int);

wtf?;]

0

of course float, a nie int. Sorry ;-)

0

Witam!
Mógłby ktoś zobaczyć czy na razie jest dobrze :

class punkt
{
float pointx;
float pointy;
public:
        punkt()
        {
                pointx=0;
                pointy=0;
        }
friend        ostream & operator << (ostream &ekran,punkt z);
        punkt(float x ,float y);
        float GetX(float x);
        float GetY(float y);

};
punkt::punkt(float x, float y)
{
        pointx=x;
    pointy=y;
}

ostream & operator << (ostream &ekran,punkt z)
{
        cout << z.pointx << "," << z.pointy ;
        return ekran;
}
float punkt::GetX(float x)
{
    return x;
}

float punkt::GetY(float y)
{
    return y;
}
int main()
{
        punkt P(5,2);
        cout<<P<<endl;
        cout<<P.GetX(2);// zwracanie x
        cout<<P.GetY(34);// zwracanie y
  return 0;
} 

A jak zapisać tą nową wartość do współrzędnej to nadal nie wiem...

0

Po co w obecnej postaci sa funkcje getX i GetY? Zwracają one przecież liczbę podana w argumentach, nic nie przypisują!!!

0

Bez kitu to było bez sensu...
Poprawiony kod :

#include "stdafx.h"
#include <iostream>
using namespace std;

class punkt
{
float pointx;
float pointy;
public:
        punkt()
        {
                pointx=0;
                pointy=0;
        }
friend ostream & operator << (ostream &ekran,punkt z);
        punkt(float x ,float y);
   float GetX()
   {
      return pointx;
   }

   float GetY()
   {
      return pointy;
   }
void SetX(float x)
{
   pointx=x;
}
};
punkt::punkt(float x, float y)
{
        pointx=x;
        pointy=y;
}

ostream & operator << (ostream &ekran,punkt z)
{
        cout << z.pointx << "," << z.pointy ;
        return ekran;
}

int main()
{
        punkt P(5,2),K;

        cout<<P<<endl;
      cout<<P.GetX()<<endl;
      cout<<P.GetY()<<endl;
        P.SetX(7);
}  

Teraz jest już ok?

0

Ale ja mam to w klasie wstawić ? Bo jak to robię to program przestaje mi się kompilować

0

Chciałbym jeszcze napisać funkcję która liczy odległość punktu od układu punktu (0,0) . Napisałem tą funkcję ale kompilator wypisuję mi że brakuj średnika. Załączam kod:

include "stdafx.h"
#include <iostream>
using namespace std;
#include <math.h>

class punkt
{
float pointx;
float pointy;
public:
        punkt()
        {
                pointx=0;
                pointy=0;
        }
friend ostream & operator << (ostream &ekran,punkt z);
        punkt(float x ,float y);
        float GetX()
    {
        return pointx;
    }

        float GetY()
    {
        return pointy;
    }
        void SetX(float x)
{
    pointx=x;
}
        void SetY(float y)
{
    pointy=y;
}
float Distance(float x , float y);

};
punkt::punkt(float x, float y)
{
        pointx=x;
        pointy=y;
}

ostream & operator << (ostream &ekran,punkt z)
{
        cout << z.pointx << "," << z.pointy ;
        return ekran;
}
float punkt::Distance(float x ,float y)
{
    return ((sqrt(pow(x,2)+pow(y,2)));

}

int main()
{
        punkt P(5,2),K;

        cout<<P<<endl;
        cout<<P.GetX()<<endl;
        cout<<P.GetY()<<endl;
        P.SetX(7);
        P.SetY(23);
        cout<<P<<endl;
}   
0

Zabrakło ci średnika w tym returnie

0

No przecież wszędzie są średniki !

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0