сломал голову уже с компилятором от VS2003.
в общем, классический пример : есть класс CDate, хотим создать переменные, которые будут хранить значение по умолчанию и функция, которая будет менять это значение по умолчанию для всего класса.
делаю так:
//CDate.h
class CDate
{
private:
int d,m,y;
static int dd;
static int dm;
static int dy;
public:
static void SetDefault(int ds, int ms, int ys);
CDate(int ds=0,int ms=0,int ys=0);
~CDate(void);
};
//CDate.cpp
#include ".\date.h"
CDate::CDate(int ds, int ms, int ys)
{
d=ds?ds:dd;
m=ms?ms:dm;
y=ys?ys:dy;
}
CDate::~CDate(void)
{
}
void CDate::SetDefault(int ds, int ms, int ys)
{
CDate::dd=ds;
CDate::dm=ms;
CDate::dy=ys;
}
выдает ошибку линкера - не находит статические переменные dd,dm,dy...