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

question-closed Wskaźnik obiektu w wewnętrznym obiekcie

Object Storage Arubacloud
0 głosów
106 wizyt
pytanie zadane 12 kwietnia 2018 w C i C++ przez Perseusz Bywalec (2,190 p.)
zamknięte 12 kwietnia 2018 przez Perseusz

Witam! Tak rzeczowo opisze problem:

Mam obiekt [nadrzędny], w którym deklaruje obiekt [podrzędny] innej klasy. Obie klasy są zawarte w innych plikach. Jak przesłać np. do konstruktora obiektu [podrzędnego] adres obiektu [nadrzędnego] tak, żeby utworzyć w nim wskaźnik? Chodzi mi raczej o łączenie plików niż deklarację.

#ifndef NADRZEDNY_H
#define NADRZEDNY_H

#include //tylko co i gdzie?

Class Nadrzedny
{
    //wartości obiektu i takie tam...

   Podrzedny obiekt_p(*this);
}

#endif
#ifndef NADRZEDNY_H 
#define NADRZEDNY_H

#include // ??

class Podrzedny
{
    public:
        Podrzedny(Nadrzedny*wskaznik)
    
    //wartości i takie tam :p    

}

#endif

Gdy je podlinkuje wzajemnie to mam jakiś dziwny error, to sobie pomyślałem, że nie tędy droga. Nie wzajemnie podlinkowane tj.: podrzędny jest podlinkowany w nadrzędnym to oczywiście nadrzędny nie został zadeklarowany...

Da się to jakoś rozwiązać? Póki co to poprostu w innym pliku zrobiłem strukturę, no i podlinkowana jest do każdego pliku no i działa, ale tak o byłoby chyba czytelniejsze

Dzięki z góry za odpowiedzi laugh

komentarz zamknięcia: Znalazłem odpowiedź (forward declaration)
komentarz 12 kwietnia 2018 przez RafalS VIP (122,820 p.)
Wrzuć więcej kodu, bo tu nic nie widać.
komentarz 12 kwietnia 2018 przez RafalS VIP (122,820 p.)
Na pierwszy rzut oka widzę, jedynie, że masz te same #define w dwóch plikach, może to jest nie tak :P
komentarz 12 kwietnia 2018 przez Perseusz Bywalec (2,190 p.)

Rypłem się trochę przy pisaniu, ale Patrycjerz jakoś pomógł także chyba zamykam temat cheeky

1 odpowiedź

+1 głos
odpowiedź 12 kwietnia 2018 przez Patrycjerz Mędrzec (192,320 p.)
wybrane 12 kwietnia 2018 przez Perseusz
 
Najlepsza

Możesz użyć forward declaration.

#ifndef NADRZEDNY_H
#define NADRZEDNY_H
 
#include "Podrzedny.h"
 
class Nadrzedny
{
    //wartości obiektu i takie tam...
 
   Podrzedny obiekt_p(*this);
};
 
#endif

#ifndef PODRZEDNY_H 
#define PODRZEDNY_H
 
class Nadrzedny;
 
class Podrzedny
{
    public:
        Podrzedny(Nadrzedny*wskaznik);
     
    //wartości i takie tam :p    
 
};
 
#endif
komentarz 12 kwietnia 2018 przez Perseusz Bywalec (2,190 p.)
To rzeczywiście działa? W sumie to o tym myślałem, ale uznałem, że poprostu uzna mi to za jakiś inny typ. Czas wrócić do pierwszego sposobu, dzięki!

Podobne pytania

0 głosów
1 odpowiedź 453 wizyt
pytanie zadane 26 stycznia 2019 w C i C++ przez Pawli Początkujący (250 p.)
0 głosów
1 odpowiedź 171 wizyt
pytanie zadane 27 października 2017 w C i C++ przez garris Użytkownik (660 p.)
0 głosów
2 odpowiedzi 365 wizyt

92,537 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 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!

...