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

Беда со статическим полем - C++

Восстановить пароль Регистрация
 
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
29.05.2012, 20:15     Беда со статическим полем #1
Всем привет! такой вопрос:

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
29
30
31
32
33
34
35
36
37
38
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
class A
{
    
public:
    static int i;
 
    static void inc(int q)
    {
        i = q;
    };
 
 
};
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    A obj;
    cout<<"Creat an object"<<endl;
    cout<<"Use fun - 'int' ,Print static num"<<endl;
    
    A::inc(10);
 
    _getch();
 
    
    return 0;
}
вот код, и выдает ошибку:

1>conso.obj : error LNK2001: unresolved external symbol "public: static int A::i" (?i@A@@2HA)
1>c:\users\sem\documents\visual studio 2010\Projects\conso\Debug\conso.exe : fatal error LNK1120: 1 unresolved externals

уже облазил всё( не могу понять что за странность? вроде же всё правильно..уже правда - кучу вариантов перепробовал...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2012, 20:15     Беда со статическим полем
Посмотрите здесь:

C++ Нужен совет по Статическим Обьектам
[C++] декларация класса со статическим полем C++
Linker error с приватным статическим членом класса C++
C++ Преобразование кода со статическим выделением памяти в динамическое
C++ Разница между статическим и динамическим полиморфизмом
Матрица со статическим массивом C++
C++ Пример класса со статическим членом
C++ Инициализация вектора статическим массивом в конструкторе класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
29.05.2012, 20:23     Беда со статическим полем #2
Статические поля надо вне класса инициализировать (если только не интегральная константа):
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
29
#include <iostream>
 
 
class A {
    
public:
    static int i;
    static int const j = 55;
 
    static void inc(int q) {
        i = q;
    }
 
 
};
 
int A::i/* = 0*/;
 
 
 
int main()
{     
    std::cout << "A::i = " << A::i << std::endl;
    std::cout << "A::j = " << A::j << std::endl;
    
    A::inc(10);
    
    std::cout << "A::i = " << A::i << std::endl;
}
http://liveworkspace.org/code/09a565...8a890ea8e09bbf
Eugen-S
 Аватар для Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
29.05.2012, 20:30  [ТС]     Беда со статическим полем #3
О! спасибо, разобрался и починил!
Yandex
Объявления
29.05.2012, 20:30     Беда со статическим полем
Ответ Создать тему
Опции темы

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