Jak podać do funkcj prawidlowo [Klasy]

0

Witam. Jestem początkujacym programistom i mam problem z podawaniem ardumentów do funkcji
Mam 3 klasy, z nich kazda w osobnym pliku

//Plik czolg.h -------------
#pragma once
#include "pocisk.h"
#include "zagrodzenie.h"
class czolg
{
public:
	czolg(void);
	~czolg(void);
 
	pocisk *pociski;

        ...
};

//Plik przeciwnik.h --------------
#pragma once
#include "czolg.h"
class przeciwnik : public czolg
{
public:
	przeciwnik(void);
	~przeciwnik(void);
 
	...
};
//Plik pocisk.h --------------
#pragma once
#include "czolg.h"
#include "przeciwnik.h"

class pocisk
{
public:
	pocisk(void);
	~pocisk(void);

	//void Kolidowanie(czolg mojCzolg, przeciwnik *przeciwniki); - gdy robie tak, to mam blędy, bo powtarzam deklaracje klas
};

jak mogę do funkcji Kolidowanie podać jako parametry te dwie klasy prawidłowo?

0
  1. Polecam słownik języka polskiego zanim zaczniesz programować...
  2. Polecam nauczyć się podstaw języka programowania zanim zaczniesz pisać grę...
  3. Jaki błąd?
0

Tak jest prawidłowo:

void Kolidowanie(const czolg &mojCzolg,const przeciwnik &przeciwniki);

Jeżeli z tym nie będzie działać to znaczy że w innym miejscu nie prawidłowo.
Właściwie to na ile pamiętam już wiedziałem ten bubel i mówiłem ze to nie czolg ma zawierać pocisk lecz pocisk ma mieć odnośnik do czolg który go wystrzelił przy czym w postaci: czolg &wlasciciel;

0

Z tego co zauważyłem to bląd polega w inkludach, co są w pliku pocisk.h. Bo w main.cpp dołączam te wszystkie klasy, przez to wszystko chyba nawzajem koliduje.

0
_13th_Dragon napisał(a):

Tak jest prawidłowo:

void Kolidowanie(const czolg &mojCzolg,const przeciwnik &przeciwniki);

Jeżeli z tym nie będzie działać to znaczy że w innym miejscu nie prawidłowo.
Właściwie to na ile pamiętam już wiedziałem ten bubel i mówiłem ze to nie czolg ma zawierać pocisk lecz pocisk ma mieć odnośnik do czolg który go wystrzelił przy czym w postaci: czolg &wlasciciel;

ale pocisk może mieć, jak i mój czołg tak i czołg przeciwnika. I potem latwiej się odwoływać do pocisków, bo od razu widze do kogo nałeży

0

Wiersz #include "pocisk.h" w czolg.h zamień na class pocisk;.
Plus to co podałem wcześniej.
Ale jeszcze raz powtarzam, jak nie zrobisz poprawnej konstrukcji to będziesz miał przechlapane trochę później.

0
_13th_Dragon napisał(a):

to nie czolg ma zawierać pocisk lecz pocisk ma mieć odnośnik do czolg który go wystrzelił przy czym w postaci: czolg &wlasciciel;

@_13th_Dragon Czy mógłbyś rozwinąć tą myśl i powiedzieć dlaczego tak?
Tzn. czym się kierować kiedy dać wskaźnik na dany obiekt a kiedy dać obiekt wewnątrz obiektu itd.

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