Форум программистов, компьютерный форум CyberForum.ru

Ошибка с статическими членами класса - C++

Восстановить пароль Регистрация
 
parhom9408
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 12
31.01.2013, 01:53     Ошибка с статическими членами класса #1
Доброго времени суток, форумчане!
Недавно пришлось вернуться с С# на С++ и я тут же заметил что я все забыл(
Итак по сути:

Есть определение класса:
C++
1
2
3
4
5
6
7
8
9
10
11
static class control
 {
    public:
       static double u0;
       static double* t;
       static double* u;
       static int N;
       static int ceruv;
           static double contr(double x);
           static void create_control();
 };
Приведено реализацию функции create_control():
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void control::create_control()
{
   N = 10;
   u0 = 2;
   ceruv = 2;
   t = new double[N];
   u = new double[N];
   double cher;
   for (int i = 0; i < N / 2.0; i++)
            {
                cher = rand()*1.0/RAND_MAX;
                if (cher <= 0.5)
                    u[2 * i] = u0;
                else
                    u[2 * i] = -u0;
            }
            for (int i = 0; i < N / 2.0; i++)
            {
                u[2 * i + 1] = 0;
            }
        t[0] = 0;
            
                for (int i = 1; i < N; i++)
                    if ((i / 2.0)-int(i / 2.0) == i / 2.0)
                       t[i] = t[i - 1] + 1 + 0.5 * rand()*1.0/RAND_MAX;
                    else t[i] = t[i - 1] + 20 + 5 * rand()*1.0/RAND_MAX;
                    
}
Компилятор Visual C++ 2010 ругается следующим образом:
Error 2 error LNK2001: unresolved external symbol "public: static double * control::u" (?u@control@@2PANA)
Error 3 error LNK2001: unresolved external symbol "public: static double * control::t" (?t@control@@2PANA)
Error 4 error LNK2001: unresolved external symbol "public: static int control::ceruv" (?ceruv@control@@2HA)
Error 5 error LNK2001: unresolved external symbol "public: static double control::u0" (?u0@control@@2NA)
Error 6 error LNK2001: unresolved external symbol "public: static int control::N" (?N@control@@2HA)
Error 7 error LNK1120: 5 unresolved externals

Пожалуйста почему и главное на что он ругается. Спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
31.01.2013, 01:58     Ошибка с статическими членами класса #2
В одном из .cpp файлов:
C++
1
2
3
4
5
double control::u0;
double* control::t;
double* control::u;
int control::N;
int control::ceruv;
parhom9408
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 12
31.01.2013, 02:07  [ТС]     Ошибка с статическими членами класса #3
В каком именно?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11834 / 6813 / 769
Регистрация: 27.09.2012
Сообщений: 16,886
Записей в блоге: 2
Завершенные тесты: 1
31.01.2013, 02:14     Ошибка с статическими членами класса #4
Цитата Сообщение от parhom9408 Посмотреть сообщение
В каком именно?
в любом cpp, где объявлен control.
А лучше в том, где находится реализация класса
Yandex
Объявления
31.01.2013, 02:14     Ошибка с статическими членами класса
Ответ Создать тему
Опции темы

Текущее время: 16:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru