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

Podział projekty na kilka plików

Object Storage Arubacloud
+1 głos
439 wizyt
pytanie zadane 23 stycznia 2017 w C i C++ przez BeSSeSSt Obywatel (1,190 p.)

Tworzę właśnie grę, i chciałem umieścić klasę w innym pliku niż "main.cpp". Oczywiście umieściłem, ale nie kompiluje. Oto błąd: "expected class-name before ' { '  token". Oto kod:

pocisk.h:

#ifndef pocisk_h
#define pocisk_h

#include <SFML/Graphics.hpp>

class Strzal : public Drawable
{
public:

    bool canShoot = false;

    void strzal();

};

#endif

(jak można zauważyć dziedziczę po drawable w SFML)

 

pocisk.cpp:

#include "pocisk.h"
#include <SFML/Graphics.hpp>

#include <iostream>
void Strzal::strzal()
{
   //strzal...
}

 

a w main.cpp po prostu wywołanie metody strzal().

 

Proszę o pomoc

komentarz 23 stycznia 2017 przez C☺ndzi Stary wyjadacz (12,100 p.)
Pokaż maina.
komentarz 23 stycznia 2017 przez BeSSeSSt Obywatel (1,190 p.)

tyle co jest związane ze strzałem (dopiero co zacząłem)

 if (Keyboard::isKeyPressed(Keyboard::Up))
        {
            Strzal k;
            k.strzal();
        }

 

komentarz 23 stycznia 2017 przez C☺ndzi Stary wyjadacz (12,100 p.)
Może błąd jest do zupełnie innej linijki?
komentarz 23 stycznia 2017 przez BeSSeSSt Obywatel (1,190 p.)
Kompilator wskazuje na 7 linijke pliku pocisk.h , więc nie wiem
komentarz 23 stycznia 2017 przez niezalogowany
Pamiętaj, że kompilator może się mylić i nie zawsze wskaże ci linię kodu, w której rzeczywiście jest błąd.

1 odpowiedź

+2 głosów
odpowiedź 23 stycznia 2017 przez C☺ndzi Stary wyjadacz (12,100 p.)
wybrane 23 stycznia 2017 przez BeSSeSSt
 
Najlepsza

class Strzal : public sf::Drawable może?

komentarz 23 stycznia 2017 przez BeSSeSSt Obywatel (1,190 p.)
Dobra, przypomne sobie obiektówkę, ale póki co chce skończyć program :p. Czyli jak mam to mieć zapisane? Tyle że w pliku .h właśnie jest nagłówek metody strzal(), a w .cpp ciało...... Czyli jak to powinno wyglądać?
3
komentarz 23 stycznia 2017 przez niezalogowany
Plik nagłówkowy:
//strzal.h

class Strzal : public sf::Drawable
{
        sf::Sprite sprite; //prywatne atrybuty np. sprite, tekstura
        void draw(sf::RenderTarget& target, sf::RenderStates states) const
public:
        Strzal();     
}     

Plik źródłowy:

//strzal.cpp

Strzal::Strzal()
{
}

void Strzal::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
        target.draw(sprite, states);
}

W mainie wywołanie:

Strzal obiekt;
window.draw(obiekt);

 

komentarz 24 stycznia 2017 przez BeSSeSSt Obywatel (1,190 p.)
Dobrze już działa :D. Dzięki :). A tak poza tematem, to jak stworzyłem vectora w funkcji main() to w pliku strzal.cpp co mam zrobić żeby móc z niego korzystać?
1
komentarz 24 stycznia 2017 przez Patryk Krajewski Nałogowiec (26,170 p.)
Możesz w pliku strzal.h stworzyć wskaźnik na ten wektor i ustawić go za pomocą funkcji np setVectorPtr(std::vector<typ>* arg1) albo w konstruktorze przesyłając jaką argument. Nie jestem pewien czy tak się tworzyło wskaźnik na wektor(wygoogluj to sobie)
1
komentarz 24 stycznia 2017 przez BeSSeSSt Obywatel (1,190 p.)
dobra dzięki :D pomogłeś :)

Podobne pytania

0 głosów
1 odpowiedź 234 wizyt
pytanie zadane 21 kwietnia 2017 w C i C++ przez ReapeRPL Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 400 wizyt
0 głosów
0 odpowiedzi 174 wizyt
pytanie zadane 11 stycznia 2023 w C i C++ przez narusia Nowicjusz (120 p.)

92,762 zapytań

141,686 odpowiedzi

320,499 komentarzy

62,106 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

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!

...