Hi.
I'm trying to create a singleton class that will save radio statistics.
here's how it looks:

Code:
#include<iostream>
#include<string>
#include<map>
#include<iterator>
#include<algorithm>
#include"Song.h"
#include"Playlist.h"
using namespace std;



class RadioStatistics
{
private:
    static RadioStatistics* m_instance;
    static map<string, int> m_songs;
    static map<string, int> m_singers;
    RadioStatistics();
public:
    static RadioStatistics* getInstance();
    string getMostPlayedSong();
    string getMostPlayedSinger();
};
the idea is to increment the value of m_songs and m_singers whenever a song is played in the radio, so later it'll be possible to know what song was played the most and who's the most popular singer.

here's some of the implementation so far:

Code:
#include "RadioStatistics.h"


RadioStatistics::RadioStatistics()
{
    cout<<"CTR called"; //indicator
}


RadioStatistics* RadioStatistics::getInstance()
{
    if (!m_instance) //an error here
        m_instance=new RadioStatistics; 
    return m_instance;
}


bool CompareValues(pair<string, int> lhs, pair<string, int> rhs)
{
    return lhs.second<rhs.second;
}


string RadioStatistics::getSongMostPlayed()
{
    pair<string, int> tempPair=*max_element(m_songs.begin(),m_songs.end(),CompareValues); //an error here
    return tempPair.first;
}
the problem is:

undefined reference to `RadioStatistics::m_instance'
undefined reference to `RadioStatistics::m_instance'
undefined reference to `RadioStatistics::m_instance'
undefined reference to `RadioStatistics::m_songs'
undefined reference to `RadioStatistics::m_songs'

can anyone please shed some light on that issue?
why is it undefined?

thank you in advanced.