• 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
369 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ź 211 wizyt
pytanie zadane 21 kwietnia 2017 w C i C++ przez ReapeRPL Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 371 wizyt
0 głosów
0 odpowiedzi 168 wizyt
pytanie zadane 11 stycznia 2023 w C i C++ przez narusia Nowicjusz (120 p.)

92,555 zapytań

141,403 odpowiedzi

319,559 komentarzy

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

...