• 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

VPS Starter Arubacloud
+1 głos
353 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ź 200 wizyt
pytanie zadane 21 kwietnia 2017 w C i C++ przez ReapeRPL Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 348 wizyt
0 głosów
0 odpowiedzi 164 wizyt
pytanie zadane 11 stycznia 2023 w C i C++ przez narusia Nowicjusz (120 p.)

92,417 zapytań

141,222 odpowiedzi

318,983 komentarzy

61,831 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...