• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kurs C++ obiektowy, odc.4

Object Storage Arubacloud
0 głosów
622 wizyt
pytanie zadane 8 lipca 2015 w C i C++ przez Masa Nowicjusz (220 p.)

Witam, robię obecnie kurs obiektowy Pana Mirosława i jestem na odcinku 4. Dla sprawdzenia czy póki co rozumiem obiektówkę napisałem program który porównuje dwa punkty w osi X i osi Y. I prosiłbym, aby ktoś bardziej doświadczony zerknął na ten kod i spróbował wywnioskować czy dobrze zrozumiałem te pierwsze odcinki. Wydaje mi się że jestem gotów, ale chciałbym żeby ktoś spojrzał na to bardziej obiektywnie.

main.cpp 

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

void sedzia(Punkt1 p1,Punkt2 p2)
{
    if (p1.x>p2.x) cout <<"Punkt o nazwie "<<p1.nazwa<<"J est wyzej na osi x od punktu o nazwie "<<p2.nazwa<<endl;
    else if(p1.x==p2.x) cout<<"Punkt "<<p1.nazwa<<" i punkt "<<p2.nazwa<<" znajduja sie w tym samym punkcie na osi x"<<endl;
    else cout <<"Punkt o nazwie "<<p2.nazwa<<" Jest wyzej na osi x od punktu o nazwie "<<p1.nazwa<<endl;

    if (p1.y>p2.y) cout <<"Punkt o nazwie "<<p1.nazwa<<" Jest wyzej na osi y od punktu o nazwie "<<p2.nazwa<<endl;
    else if(p1.y==p2.y) cout<<"Punkt "<<p1.nazwa<<" i punkt "<<p2.nazwa<<" znajduja sie w tym samym punkcie na osi y"<<endl;
    else cout <<"Punkt o nazwie "<<p2.nazwa<<" Jest wyzej na osi y od punktu o nazwie "<<p1.nazwa<<endl;
}

int main()
{
    Punkt1 p1;
    p1.wczytaj();


    Punkt2 p2;
    p2.wczytaj();

    sedzia(p1,p2);
    return 0;
}

 

porownanie.h 

#include <iostream>

using namespace std;

class Punkt2;

class Punkt1
{
    float x,y;
    string nazwa;

    public:
    Punkt1 (string="A" , float=0, float=0 );
    void wczytaj();
    friend void sedzia(Punkt1 p1, Punkt2 p2);
};
class Punkt2
{
    float x,y;
    string nazwa;

    public:
    Punkt2 (string="B" , float=0, float=0 );
    void wczytaj();
    friend void sedzia(Punkt1 p1, Punkt2 p2);
};
porownanie.cpp

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

Punkt1::Punkt1 (string n, float xx, float yy)
{
    nazwa=n;
    x=xx;
    y=yy;
}

void Punkt1::wczytaj ()
{
    cout<<"Podaj x pierwszego punktu:"; cin>>x;
    cout<<"Podaj y pierwszego punktu:"; cin>>y;
    cout<<"Podaj nazwe punktu:"; cin>>nazwa;
}

Punkt2::Punkt2 (string n, float xx, float yy)
{
    nazwa=n;
    x=xx;
    y=yy;
}

void Punkt2::wczytaj ()
{
    cout<<"Podaj x drugiego punktu:"; cin>>x;
    cout<<"Podaj y drugiego punktu:"; cin>>y;
    cout<<"Podaj nazwe punktu:"; cin>>nazwa;
}

 

1 odpowiedź

+1 głos
odpowiedź 8 lipca 2015 przez Krawiec91 Pasjonat (19,600 p.)
wybrane 8 lipca 2015 przez Masa
 
Najlepsza
Wystarczyłaby jedna definicja klasy Punkt, bo z tego co widzę, to poza opisami typu "Podaj x pierwszego punktu", "Podaj x drugiego punktu" to się one nie różnią.
A poza tym, to nie ma za bardzo się do czego przyczepić.
komentarz 8 lipca 2015 przez Masa Nowicjusz (220 p.)
Racja, to by zoptymalizowało program ale chciałem wypróbować dwie klasy, tak dla wprawy ;). Dzięki za odpowiedź.

Podobne pytania

0 głosów
2 odpowiedzi 926 wizyt
pytanie zadane 17 października 2015 w C i C++ przez parimple Początkujący (260 p.)
0 głosów
2 odpowiedzi 182 wizyt
pytanie zadane 10 grudnia 2015 w C i C++ przez Buzzastral Nowicjusz (120 p.)
+2 głosów
4 odpowiedzi 494 wizyt
pytanie zadane 19 lipca 2015 w C i C++ przez GameBoot Początkujący (270 p.)

92,631 zapytań

141,498 odpowiedzi

319,872 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...