Wpis z mikrobloga

Siemano, mam pewien problem, z którym się męcze od wczoraj. Pisze program, który zawiera dwie klasy - Punkt i Prostokąt, gdzie atrybutami w punkcie są współrzędne xy w układzie współrzędnych, a w prostokącie współrzędne wierzchołka oraz jego długość i szerokość. Zadaniem programu jest sprawdzenie, czy punkt należy do prostokąta. Sprawdzać będzie to funkcja Sędzia, która jest funkcją zaprzyjaźnioną z poprzednie wymienionymi klasami i za argumenty przyjmuje te klasy jako obiekty (nie wiem, czy dobrze to sformułowałem). No i to jest cała koncepcja tego programu.
Problem pojawia się w funkcji Sędzia, bo atrybuty z obiektu Punkt pokazuje jako niedostępne (A, zapomniałem dodać, że piszę to w Visual Studio 2019), kiedy atrybuty z Prostokąta są dostępne. W kodzie obydwie te klasy są niemal identycznie napisane, z tym wyjątkiem, że Prostokąt posiada po prostu o dwa więcej atrybuty.

#cpp #programowanie
Pobierz K4M1L3X - Siemano, mam pewien problem, z którym się męcze od wczoraj. Pisze program, ...
źródło: comment_1602497171i1KEY98ypNXUMqQ14SuN4t.jpg
  • 11
@Drakii: ale skoro funkcja Sędzia jest zaimplementowana w klasach jako friend void, czyli jest z tymi funkcjami zaprzyjaźniona, to nie powinna mieć dostępu do tych atrybutów?
@K4M1L3X: Następnym razem skompiluj kod i przeczytaj co ma do powiedzenia kompilator. Jak widzisz IntelliSense nie jest doskonały.
BTW, domyślam się, że ten kawałek kodu to tylko trening do użycia friend, bo są dużo lepsze sposoby na zaimplementowanie takiej funkcjonalności.