Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
|
|||||||||||
#1 | |||||||||||
Компилятор ругается на static переменные - C++30.05.2012, 12:02. Просмотров 625. Ответов 12
Метки нет Все метки)
(
Есть класс:
Добавлено через 37 минут Может у меня с головой плохо и нельзя static переменные использовать в классе. Необходимо чтобы во всех объектах были одинаковые значения, изменять которые можно так же во всех объектах и чтобы изменялись они сразу во всех объектах.
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
30.05.2012, 12:02 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Компилятор ругается на static переменные (C++):
12
Ругается компилятор - C++ Компилятор не ругается - C++ ругается компилятор: - C++ Компилятор ругается - C++ Ругается компилятор - C++
|
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
|
||||||
30.05.2012, 12:12 | #2 | |||||
статческие переменные надо инициализировать вне описания класса
0
|
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
|
|||||||||||
30.05.2012, 18:48 [ТС] | #3 | ||||||||||
Помогите пожалуйста еще. У меня класс в классе:
0
|
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
|
||||||
30.05.2012, 19:25 [ТС] | #5 | |||||
Ну необходимы... Они служат указателями на первый и последний элемент.
Добавлено через 7 минут Сделал для нешаблонного класса:
0
|
DU
1485 / 1131 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
30.05.2012, 19:34 | #7 |
не нужны там статические переменные. это бред и глюк. сделайте мемберы обычными и инициализируйте их в конструкторе. при таком подходе с статическими мемберами не получится сделать больше одного экземпляра нода.
0
|
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
|
|
30.05.2012, 19:37 [ТС] | #8 |
Мне необходимо, чтобы у всех объектов были одинаковыми данные поля. Мне необходимо, чтобы эти переменные были именно внутри данного класса, значит они должны быть статическими. Если этого сделать нельзя, то скажите это, буду переделывать мозги.
0
|
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
|
|
30.05.2012, 19:45 [ТС] | #10 |
В данном классе существует еще много переменных и ссылок и всего всего. Вы с завидным упорством пытаетесь отговорить меня использовать статический переменные, не могли бы вы объяснить почему.
0
|
Toshkarik
|
|
30.05.2012, 19:49 | #11 |
Мы не пытаемся Вас отговорить, просто мы хотим понять, что Вы хотите сделать, и подсказать Вам.
Вот Вы описали класс base, в котором описали класс node. В node статические данные. Причем указатели. Вот эти самые данные буду использоваться ВСЕМИ объектами класса node, и, получается, ВСЕМИ объектами класса base. То есть это будет всего одна переменная, например static Node* first, которая создается при запуске программы, а не какого то объекта. У Вас все объекты node всегда будут указывать в одно место first и last.
0
|
Lordif
21 / 21 / 1
Регистрация: 18.04.2010
Сообщений: 87
|
|
30.05.2012, 20:36 [ТС] | #12 |
А почему всеми объектами класса base? Разве для разных объектов base не будут разные значения, ведь Node то создается всегда заново.
0
|
Toshkarik
|
|
30.05.2012, 20:47 | #13 |
Объект класса Node, но не статические данные этого класса, которые никакого отношения к объектам не имеют. Я же писал выше, статические переменные создаются всего один раз при запуске программы, и существуют все время, не зависимо от того, создан хоть один объект или объектов данного класса нет. Поэтому их и нужно инициализировать вне определения класса.
0
|
30.05.2012, 20:47 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
30.05.2012, 20:47 |
Привет! Вот еще темы с ответами:
13
компилятор с++ 2012 ругается - C++ компилятор ругается на структуру - C++ Почему ругается компилятор - C++
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |