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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
parhom9408
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 12
#1

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

31.01.2013, 01:53. Просмотров 314. Ответов 3
Метки нет (Все метки)

Доброго времени суток, форумчане!
Недавно пришлось вернуться с С# на С++ и я тут же заметил что я все забыл(
Итак по сути:

Есть определение класса:
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

Пожалуйста почему и главное на что он ругается. Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.01.2013, 01:53     Ошибка с статическими членами класса
Посмотрите здесь:

C++ Процедура с двумя статическими массивами
не линкуется класс с static членами C++
Шаблон класса вектор с двумя членами-данными C++
Объявление класса с открытыми членами. C++
Как динамически иницилизировать char * "статическими" данными? C++
Магия со статическими массивами C++
Как вывести элементы вектора, являющиеся членами класса? C++
Непонятки со статическими полями класса C++
C++ Почему перегруженные операторы ввода/вывода нельзя сделать членами класса?
C++ Создать матрицу с рандомными значениями, но статическими по диагонали
Инициализация членов дочернего класса членами класса родителя C++
C++ Работа со статическими и локальными переменными в классе

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12887 / 7273 / 810
Регистрация: 27.09.2012
Сообщений: 17,972
Записей в блоге: 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
Модератор
Эксперт CЭксперт С++
12887 / 7273 / 810
Регистрация: 27.09.2012
Сообщений: 17,972
Записей в блоге: 2
Завершенные тесты: 1
31.01.2013, 02:14     Ошибка с статическими членами класса #4
Цитата Сообщение от parhom9408 Посмотреть сообщение
В каком именно?
в любом cpp, где объявлен control.
А лучше в том, где находится реализация класса
Yandex
Объявления
31.01.2013, 02:14     Ошибка с статическими членами класса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru