Taki błąd pojawia mi się poniżej:
#include "animal.h"
class Dog : public Animal
{ //Tutaj pojawia się błąd
public:
Dog()
{
//Tutaj ciało funkcji
}
void move(float x, float y)
{
//Ciało funkcji
}
void display(sf::RenderWindow $window)
{
//Ciało funkcji
}
private:
float posX;
float posY;
};
#pragma once
class Animal
{
public:
virtual void move(float x, float y)=0;
virtual void display(sf::RenderWindow $window)=0;
private:
float posX;
float posY;
};
main.cpp:
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <SFML/System.hpp>
#include<vector>
#include"dog.h"
int main()
{
sf::RenderWindow window(sf::VideoMode(400, 400), "Animals");
std::vector<Animal*> animals;
animals.push_back(new Dog());
Animal* wkaznik;
wskaznik=&*animals[0];
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type==sf::Event::Closed)
{
window.close();
}
}
window.clear(sf::Color::Green);
for(int i=0; i<animals.size(); i++)
{
animals[i]->display(&window);
}
}
}
EDIT:
Zauważyłem, że po usunięciu :public Animal, problem znika (tyle że wtedy vector w main nie może przechowywać obiektu klasy Dog, co uniemożliwia jego działanie w takiej formie)