Проблема с map
От: Radmir Россия  
Дата: 27.04.05 10:58
Оценка:
Есть следующий код

Файл A.h:

#pragma once
#include <map>

using namespace std;

typedef std::pair<long,long> M_ITEM;
typedef std::map <long,long> M_DATA;

class A
{
private:
static M_DATA m_data;

public:
void SetData(long Key, long Data);
A(void);
~A(void);
};

файл A.cpp:

#include "a.h"


A::A(void)
{
}

A::~A(void)
{
}
void A::SetData(long Key, long Data)
{
if (m_data.find(Key) == m_data.end())
{
m_data.insert(M_ITEM(Key,Data));
}
}

компилятор VC 2003 выдает ошибку:

error LNK2001: unresolved external symbol "private: static class std::map<long,long,struct std::less<long>,class std::allocator<struct std::pair<long const ,long> > > A::m_data" (?m_data@A@@0V?$map@JJU?$less@J@std@@V?$allocator@U?$pair@$$CBJJ@std@@@2@@std@@A)

в чем может быть проблема и как ее решить?
Лучше спросить дорогу чем заблудиться
Re: Проблема с map
От: korzhik Россия  
Дата: 27.04.05 11:00
Оценка: 2 (1)
Здравствуйте, Radmir, Вы писали:

R>Есть следующий код


Файл A.h:
R>#pragma once
R>#include <map>

R>using namespace std;

R>typedef std::pair<long,long> M_ITEM;
R>typedef std::map <long,long> M_DATA;

R>class A
R>{
R>private:
R>    static M_DATA m_data;

R>public:
R>    void SetData(long Key, long Data);
R>    A(void);
R>    ~A(void);
R>};


файл A.cpp:
R>#include "a.h"

M_DATA A::m_data;

R>A::A(void)
R>{
R>}

R>A::~A(void)
R>{
R>}
R>void A::SetData(long Key, long Data)
R>{
R>    if (m_data.find(Key) == m_data.end())
R>    {
R>        m_data.insert(M_ITEM(Key,Data));
R>    }
R>}
Re[2]: Проблема с map
От: Radmir Россия  
Дата: 27.04.05 11:07
Оценка:
Спасибо!
Лучше спросить дорогу чем заблудиться
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.