-24 / 0 / 0
Регистрация: 25.10.2014
Сообщений: 13
1

Непонятная ошибка, кто объяснит?

30.11.2014, 19:06. Показов 1009. Ответов 5
Метки нет (Все метки)

Наткнулся на непонятную ошибку.
Раньше код компилировался, теперь выдает ошибку.
Для примера приведу небольшой тестовый вариант.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
template <typename T>
class queue
{
    int size_default = 10; // ругается вот на эту строчку, без нее все ок
    T *q;
public:
    queue() { cout << "Hello world!"; }
};
 
int main(int argc, char *argv[])
{
    queue<int> q;
 
    return 0;
}
Объясните пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2014, 19:06
Ответы с готовыми решениями:

Кто объяснит почему true == false ?
Спасайте! а то я щас повешусь от взрыва мозга! Кто объяснит вот что это за фигня. Когда я в...

Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол???
Вот кусок текста: Dir = Dir_X + Dir_Y; printf(&quot;X%d,&quot;,dX); ...

Кто объяснит mb_preg_match_all
Да я в курсе что всем mb_ штуки предназначены для работы с мультибайтовыми кодировками. Но как их...

Кто объяснит 2 блока вместе
&lt;div id=&quot;container&quot;&gt; &lt;header&gt; &lt;/header&gt; &lt;div class=&quot;menu&quot;&gt; &lt;/div&gt; ...

5
119 / 141 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
30.11.2014, 19:25 2
и какую ошибку выдает ?

Добавлено через 1 минуту
Цитата Сообщение от m0system Посмотреть сообщение
int size_default = 10; // ругается вот на эту строчку, без нее все ок
Так нельзя инициализировать переменные в классе
0
34 / 34 / 47
Регистрация: 22.02.2014
Сообщений: 107
30.11.2014, 19:25 3
Поместите эту строчку в privat
0
119 / 141 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
30.11.2014, 19:26 4
C++
1
2
3
4
queue():size_default(10) 
{
size_default = 10; 
 cout << "Hello world!"; }
0
541 / 162 / 79
Регистрация: 23.09.2013
Сообщений: 316
30.11.2014, 19:38 5
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

При компиляции с помощью gcc у меня не выдает ошибок, только предупреждение:
warning: non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]
int size_default = 10; // ругается вот на эту строчку, без нее все ок
^
Данный способ задания значений полей классов доступен только со стандарта с++11, в с++98 он не предоставлялся. Для решения данной проблемы можно либо компилировать проект с ключами -std=c++11,
либо заменить на int size_default; а в конструкторах, в списке инициализации указывать явным образом queue() : size_default(10){}
0
119 / 141 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
30.11.2014, 19:58 6
Цитата Сообщение от Melg Посмотреть сообщение
доступен только со стандарта с++11
Не знал
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.11.2014, 19:58
Помогаю со студенческими работами здесь

Кто объяснит поведение Яндекса ?
Наблюдаю такую хронику событий. 28 мая - сайт попадает под раздачу (в индексе ноль страниц) :( ...

Кто объяснит про коллекции
Всем привет. Изучаю Java и на данный момент дошёл до изучения коллекций. Написал пару примеров е...

кто объяснит сей фэнОмэн?
http://www.yandex.ru/yandsearch?text=%D1%E...ED%FB&amp;stype=www 2 -ая и 3-я позиции...

Кто объяснит алгоритм программы?
Эта программа рисует множество соприкасающихся окружностей могу предположить, что используется...

Кто объяснит такой прикол?!
вот только что столкнулся! Итак... Input - Delphi 7 - Win XP SP3 - avast ver 7.0 Process...

Кто объяснит мне что не так?
Создал сайт http://poselkov.ru - разместил в Яндекс.Директ, появились заходы по рекламе, но не могу...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru