Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: [c++]Przeciążanie operatorów - mała pomoc

  1. #1
    Avatar Pumpkin
    Data rejestracji
    2010
    Posty
    3,153
    Siła reputacji
    17

    Domyślny [c++]Przeciążanie operatorów - mała pomoc

    Hej, napisałem program na ćwiczenie który miał przeciążać operatora w celu dodawania 2 obiektów klas których wynikiem miał być 3 obiekt o odpowiednich parametrach. Wysłałem rozwiązanie nauczycielowi jednak powiedział mi żebym poprawił kod
    Kod :
    Circle Circle::operator+(Circle & r)
        {
        struct location u;
        u.x = ((r.get_location().x) + (get_location().x))/2;
        u.y = ((r.get_location().y) + (get_location().y))/2;
        float u_radius = r.get_radius()+get_radius();
        Circle nowy(u,u_radius);
        return nowy;
        }
    Kod :
       Circle circle3 = circle1 + circle2;
    chodzi o to żeby to przeciążenie zrobić inaczej (dużo krócej)
    Obiekt klasy circle ma parametry x,y (zawarte w strukturze "location") oraz promień
    Przeciązenie oeratora ma dodwać współrzędne x-owe oraz y-ower a także sumować promienie i wynikiem tego ma być 3 obiekt. Jak to inaczej zrobić? Wydaje mi się że chodziło o to aby użyć konstruktora zamiast zwracać nowy obiekt?
    Ostatnio zmieniony przez Pumpkin : 28-04-2014, 10:40

  2. #2
    Avatar Shaolineq
    Data rejestracji
    2008
    Posty
    234
    Siła reputacji
    18

    Domyślny

    po co to dzielenie przez 2 skoro ma zwyczajnie dodawac wspolrzedne?

  3. #3
    Avatar Pumpkin
    Data rejestracji
    2010
    Posty
    3,153
    Siła reputacji
    17

    Domyślny

    sorry nie suma ale srednia współrzędnych i suma promieni

  4. Reklama
  5. #4
    konto usunięte

    Domyślny

    @Pumpkin

    O te "skrócenie" chodziło?

    Kod :
    Circle Circle::operator+(Circle & r)
    {
        struct location u;
        u.x = ((r.get_location().x) + (get_location().x))/2;
        u.y = ((r.get_location().y) + (get_location().y))/2;
        float u_radius = r.get_radius()+get_radius();
    	
        return Circle(u,u_radius); //przykład RVO
    }
    Zanim zapytasz czym jest RVO: http://en.wikipedia.org/wiki/Return_value_optimization
    Ewentualnie, możesz pozbyć się get_location() oraz get_radious().
    Ostatnio zmieniony przez szulak : 28-04-2014, 09:59

  6. #5
    Avatar Pumpkin
    Data rejestracji
    2010
    Posty
    3,153
    Siła reputacji
    17

    Domyślny

    tak chyba o to, dzieki

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Głęboki Internet - mała pomoc
    Przez H5N1 w dziale O wszystkim i o niczym
    Odpowiedzi: 10
    Ostatni post: 18-12-2016, 15:16
  2. Mała pomoc dla mnie :)
    Przez YYZ w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 33
    Ostatni post: 15-02-2016, 19:14
  3. Kierunek.Mała Pomoc ;)
    Przez rycekrox21 w dziale Szkoła i nauka
    Odpowiedzi: 10
    Ostatni post: 27-06-2014, 18:54
  4. [C++] Przeciazanie strumienia w klasach
    Przez Zabek46 w dziale Programowanie
    Odpowiedzi: 2
    Ostatni post: 07-09-2013, 02:49
  5. League of Legends Paysafecard- mała pomoc
    Przez Layla w dziale Inne gry
    Odpowiedzi: 0
    Ostatni post: 04-12-2012, 16:59

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •