Basically for some reason new object is wrong type. All source code is on github https://github.com/teuro/sfml-radar. If it's help please fork at will.
I have following class:
#ifndef _VIEW_HPP
#define _VIEW_HPP
#include <iostream>
#include "sfml_drawsurface.hpp"
class View {
protected:
    View(Drawsurface& d) : drawer(d) {
        std::clog << "View::View()" << std::endl;
    }
    Drawsurface& drawer;
    virtual void draw() = 0;
};
#endif
That is base class for all different kind of views. Now I have derived sub-class
#ifndef _GAME_VIEW_HPP
#define _GAME_VIEW_HPP
#include <vector>
#include <iostream>
#include <typeinfo>
#include "view.hpp"
#include "../models/game.hpp"
class Gameview : public View {
public:
    Gameview(Drawsurface& d);
    ~Gameview();
    void draw();
private:
    Drawsurface& drawer;
};
#endif // _GAME_VIEW_HPP
Then abstract class Drawsurface
/**
    * drawsurface base for all graphics pure abstract
    * provide only interface quite high-level
    * 2014/06/02
    * Juha Teurokoski
**/
#ifndef _DRAWSURFACE_HPP
#define _DRAWSURFACE_HPP
#include <string>
#include "../models/point.hpp"
class Drawsurface {
public:
    bool font_loaded;
    virtual void rectangleColor(Point& a, Point& b, unsigned int color) = 0;
    virtual void lineColor(Point& a, Point& b, unsigned int color) = 0;
    virtual void circleColor(Point& a, unsigned int rad, unsigned int color) = 0;
    virtual void trigonColor(Point& a, Point& b, Point& c, unsigned int color) = 0;
    virtual void trigonColor(Point& a, unsigned int size, unsigned int color) = 0;
    virtual void load_font(std::string font) = 0;
    virtual void draw_picture(std::string tiedosto, Point& a, bool center = false) = 0;
    virtual void draw_text(std::string text, Point& a, unsigned int color = 0) = 0;
    virtual int get_fontsize() = 0;
    virtual void flip() = 0;
    virtual void clear_screen() = 0;
    virtual ~Drawsurface() { }
};
#endif
Now if I create new instance of sfml_drawsurface which is sub-class of Drawsurface. For some reason new object is Drawsuface istead of sfml_drawsurface. Below is sfml_drawsurface class.
#ifndef SFML_DRAWSURFACE_HPP
#define SFML_DRAWSURFACE_HPP
/**
    * sfml-drawsurface provides basic drawing, pictures and text
    * require drawsurface
    * 2014/06/02
    * Juha Teurokoski
**/
#include "drawsurface.hpp"
#include <vector>
#include <stdexcept>
#include <iostream>
#include <SFML/Graphics.hpp>
class sfml_drawsurface : public Drawsurface {
public:
    sfml_drawsurface(sf::RenderWindow& window);
    ~sfml_drawsurface();
    void rectangleColor(Point& a, Point& b, unsigned int color);
    void circleColor(Point& a, unsigned int rad, unsigned int color);
    void lineColor(Point& a, Point& b, unsigned int color);
    void trigonColor(Point& a, Point& b, Point& c, unsigned int color);
    void trigonColor(Point& a, unsigned int _size, unsigned int color);
    void draw_picture(std::string tiedosto, Point& a, bool center = false);
    void draw_text(std::string text, Point& a, unsigned int color);
    void load_font(std::string font);
    void clear_screen();
    int get_fontsize();
    void flip();
protected:
private:
    sf::RenderWindow& window;
    sf::Font font;
    sf::Color active;
    sf::Color normal;
};
#endif // SFML_DRAWSURFACE_HPP
I create new object like this:
sfml_drawsurface drawer(window);
this->gameview = new Gameview(drawer);
std::clog << typeid(drawer).name() << std::endl;
And everything seems to be right, because std::clog outout is '16sfml_drawsurface'.
Next place is draw-method then happens something really weird.
Same print is now '11Drawsurface'.
 
    