static член и ошибка
От: Аноним  
Дата: 07.09.06 18:32
Оценка:
Почему происходит ошибка в следующем коде? Никак не могу понять.

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)
Re: static член и ошибка
От: Vain Россия google.ru
Дата: 07.09.06 18:47
Оценка:
Здравствуйте, Аноним, Вы писали:

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.]
[Даю очевидные ответы на риторические вопросы]
Re: static член и ошибка
От: Jax Россия  
Дата: 07.09.06 18:56
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>Почему происходит ошибка в следующем коде? Никак не могу понять.



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;
};
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.