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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269
#1

"Не хочу константу!" - C++

06.10.2011, 23:20. Просмотров 1393. Ответов 8
Метки нет (Все метки)

Здравствуйте. Компилятор (пишу в wxDev-C++) ругается на такой код

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
#ifndef LIFE_H
#define LIFE_H
 
class Life
{
public:
    Life ();                        // конструктор
    int around ( int, int );        // считает, сколько клеток вокруг
    void deadOrAlive ( int, int );  // изменяет клетку в зависимости от условий
    void throughArray ();           // прочесывает массив и проверяет каждую его клетку
    void copyArrays ();             // копирует запасной массив в основной
    void clean_Array ();            // очищает запасной массив
    void printArray ();             // печатает массив
    
    int alive ();                   // считает, сколько живых клеток осталось
        
private:
    const int y_size = 44;
    const int x_size = 99;
    
    unsigned char array [ y_size ][ x_size ];        // основной массив
    unsigned char _array [ y_size ][ x_size ];       // запасной массив
};
 
#endif
и говорит:
ISO C++ forbids initialization of member `y_size'
making `y_size' static
ISO C++ forbids initialization of member `x_size'
making `x_size' static
Что делать? Вроде всё в порядке же.
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2011, 23:20     "Не хочу константу!"
Посмотрите здесь:

Записать константу "Гравитационная постоянная" - C++
Как написать гравитационное постоянная G=6,67×10^−11 на c++

"Угадай число" (напишите программу, хочу проверить со своей). - C++
"Угадай число". Пользователю предлагается отгадать число за 10 попыток. Программа даёт подсказки вида больше, меньше.

хочу попробовать всунуть "for (int j=0; j<5; j++)" в cin. Как это можно реализовать? - C++
int main() { const int Mass =5; int a; for (int j=0; j&lt;5; j++) { cout &lt;&lt; &quot;-&gt;&quot;; cin &gt;&gt; a; ...

Хочу static "с домином и монашками" - C++
Здравствуйте. class My_class { Any_type x; }; Объект х будет одинаковым у объектов этого класса, поэтому я хотел бы сделать...

Не перезагружает "+" как я хочу - C++
Захотел что бы вот так действовал плюс riad CB1(&quot;asd&quot;),CB2(&quot;dsa&quot;),CB3(&quot;dsw&quot;); riad aaa = CB1 + CB2; ааа == 9 в идеале это хотел...

Почему вместо обратного слеша "\" выводит "¥" - C++
Компилятор напрочь отказывается ставить обратный слеша В других программах все работает нормально. VS community 2015 Загружайте...

Нужно найти слова которые встречаются в буквы "a" "z" - C++
Даны две буквы &quot;a&quot; &quot;z&quot; и текст, нужно найти и вывести те слова в которых встречаются две эти буквы вот мой вариант но он не работает ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.10.2011, 23:21     "Не хочу константу!" #2
C++
1
2
static const int y_size = 44;
static const int x_size = 99;
alex_x_x
бжни
2445 / 1650 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
06.10.2011, 23:57     "Не хочу константу!" #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Life
{
public:
    Life (){}        
    // ...
private:
    enum {x_size = 99, y_size=44};
    unsigned char array [y_size][x_size];        // основной массив
    unsigned char _array [y_size][x_size];       // запасной массив
};
 
int main()
{
    Life();
}
castaway
Эксперт С++
4880 / 3016 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
07.10.2011, 00:06     "Не хочу константу!" #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Life
{
public:
    Life (){}        
    // ...
private:
    unsigned char array [44][99];        // основной массив
    unsigned char _array [44][99];       // запасной массив
};
 
int main()
{
    Life();
}
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
07.10.2011, 05:00     "Не хочу константу!" #5
lazybiz, а если захотим изменить размер массива? Придется менять определение всех методов класса?
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.10.2011, 07:44     "Не хочу константу!" #6
Цитата Сообщение от Nameless One Посмотреть сообщение
lazybiz, а если захотим изменить размер массива? Придется менять определение всех методов класса?
Только при явных константах.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
07.10.2011, 08:21     "Не хочу константу!" #7
taras atavin, смотри сообщение #4
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
07.10.2011, 08:25     "Не хочу константу!" #8
Кстати, а почему бы не сделать массив динамическим? Тогда размеры можно хранить не в константах, а в переменных.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2011, 08:37     "Не хочу константу!"
Еще ссылки по теме:

возвращаемый тип "main" должен быть "int", а не - C++
код: // формирование списка фамилия, имя struct FIO { char *familiya; char *imya; } void main() {

Массив "hotel", в который пользователь добавляет "жильцов" - C++
Дорогие форумчане, помогите мне решить проблему в данной программе! Суть программы: Есть массив &quot;hotel&quot;, в который пользователь...

Процедура, "рисующая" на экране горизонтальную линию из 80 символов "*" - C++
Составить процедуру, &quot;рисующую&quot; на экране горизонтальную из 80 символов &quot;*&quot;

Сдающий карты. "cards_remaining--" одинаково работает и с "--", и без - C++
Всем привет, возник вопрос по поводу программы &quot;сдающий карты&quot;, программа с книги &quot;С++ без страха&quot;, автора не помню, не столь важно) Вот...

Что происходит когда например "char* g="fdgag";"? - C++
Сабж. Я понял создается динамический массив с помощью malloc() и поэтому к нему не обратится таким образом: g. Я прав?


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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.10.2011, 08:37     "Не хочу константу!" #9
Цитата Сообщение от taras atavin Посмотреть сообщение
Кстати, а почему бы не сделать массив динамическим? Тогда размеры можно хранить не в константах, а в переменных.
а почему бы не сделать размер параметром шаблона?
Yandex
Объявления
07.10.2011, 08:37     "Не хочу константу!"
Ответ Создать тему
Опции темы

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