Почему происходит ошибка в следующем коде? Никак не могу понять.
class A
{
public:
int k;
};
class B
{
public:
static A a;
};
int _tmain(int argc, _TCHAR* argv[])
{
B b;
b.a.k = 7;
return 0;
};
Ошибка:
Error 1 error LNK2001: unresolved external symbol "public: static class A B::a" (?a@B@@2VA@@A)
Здравствуйте, Аноним, Вы писали:
class A
{
public:
int k;
};
class B
{
public:
static A a;
};
A B::a /*= {7}*/;
int _tmain(int argc, _TCHAR* argv[])
{
B b;
b.a.k = 7;
return 0;
};
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Аноним, Вы писали:
А>Почему происходит ошибка в следующем коде? Никак не могу понять.
class A
{
public:
int k;
};
class B
{
public:
static A a;
};
// Статические члены должны быть определены, поэтому:
A B::a;
int _tmain(int argc, _TCHAR* argv[])
{
B b;
b.a.k = 7;
return 0;
};