Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Static array 2d / 16 сообщений из 16, страница 1 из 1
15.12.2006, 13:22
    #34202873
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
В классе есть две статические константы:

Код: plaintext
1.
2.
static const int MAX_LUN;
static const int MAX_CHAN;
Необходимо определить в этом же классе статический массив
Код: plaintext
static ALLVTU *vtues[][];
размером MAX_LUN на MAX_CHAN.

Просто объявить его в хидере как static ALLVTU *vtues[][], а потом в cpp написать
Код: plaintext
1.
ALLVTU * 
ALLVTU::vtues[MAX_LUN][MAX_CHAN];
нельзя. Ругается что необходимо указать все размерности массива, кроме первой, при объявлении...
Написать в хидере ALLVTU *vtues[MAX_LUN][MAX_CHAN]; тоже нельзя т.к. эти переменные еще не инициализированы.
Как быть?
...
Рейтинг: 0 / 0
15.12.2006, 13:23
    #34202882
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
bemtaill...тоже нельзя т.к. эти переменные еще не инициализированы...

В смысле константы...
...
Рейтинг: 0 / 0
15.12.2006, 13:31
    #34202930
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
А чего не дефайны?
...
Рейтинг: 0 / 0
15.12.2006, 13:34
    #34202949
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
Правильного ответа не знаю, а я бы сделал new.
...
Рейтинг: 0 / 0
15.12.2006, 13:34
    #34202953
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
AkhА чего не дефайны?
Эти константы потом используются отдельно еще... не только при объявлении. Ну а про дефайны много чего плохого было сказано, поэтому все же хочется через статик константы сделать...
...
Рейтинг: 0 / 0
15.12.2006, 13:36
    #34202968
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
Ой ВэйПравильного ответа не знаю, а я бы сделал new.
не понял. new это как?
...
Рейтинг: 0 / 0
15.12.2006, 13:37
    #34202971
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
bemtaill Ой ВэйПравильного ответа не знаю, а я бы сделал new.
не понял. new это как?
а понял:)
...
Рейтинг: 0 / 0
15.12.2006, 13:49
    #34203034
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
Есть предложение задефайнить значения статических констант. Эти же дефан вставить в размерность массива.

> Эти константы потом используются отдельно еще... не только при объявлении

Константы еще будут использоваться уже без помощи дефайна

> Ну а про дефайны много чего плохого было сказано

Оговорена ограниченность использования дефайнов, ничего страншного в этой области нет. Дать ему страшное, или очень страшное имя, чтобы никогда ни на что не наложилось.
...
Рейтинг: 0 / 0
15.12.2006, 15:11
    #34203409
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
а если так?
Код: plaintext
static ALLVTU ***vtues;
...
Рейтинг: 0 / 0
15.12.2006, 15:14
    #34203416
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
Код: plaintext
ALLVTU * ALLVTU::vtues=NULL;
:)
...
Рейтинг: 0 / 0
15.12.2006, 17:06
    #34203994
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
AkhЕсть предложение задефайнить значения статических констант. Эти же дефан вставить в размерность массива.

> Эти константы потом используются отдельно еще... не только при объявлении

Константы еще будут использоваться уже без помощи дефайна

> Ну а про дефайны много чего плохого было сказано

Оговорена ограниченность использования дефайнов, ничего страншного в этой области нет. Дать ему страшное, или очень страшное имя, чтобы никогда ни на что не наложилось.

Угу. Наверно так и сделаю. Спасибо.

2 maXmo: через указатель тоже мона, я просто думал как бы так с константами:)
...
Рейтинг: 0 / 0
15.12.2006, 17:44
    #34204151
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
чего с константами?
...
Рейтинг: 0 / 0
15.12.2006, 17:50
    #34204170
bemtaill
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
maXmoчего с константами?
Ну сделать не через new (я так понимаю вы предлагаете объявить в классе указатель, а потом создать массив когда уже константы получат свои значения), а сделать массив у которого размеры опрделяются константами.

или мы друг друга не поняли?
...
Рейтинг: 0 / 0
15.12.2006, 18:02
    #34204215
Static array 2d
чего с константами?

а в чем проблема-то?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class A
{
	static const int _lim1 =  1 , _lim2 =  2 ;
	static const int _arr[_lim1][_lim2];
};

//если компилятор не понимает вышеуказанного, то такой трюк:

class B
{
	enum { _lim1 =  1 , _lim2 =  2  };
	static const int _arr[_lim1][_lim2];
};

...
Рейтинг: 0 / 0
18.12.2006, 11:13
    #34206675
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
bemtaillНу сделать не через newесли тебе нужен настоящий 2D массив, его второй размер должен быть известен сразу или тебе придётся извращаться при его использовании. Это очевидно, если знать, как устроены и работают двумерные массивы. Вложенный массив формируется лапками через new.
...
Рейтинг: 0 / 0
18.12.2006, 11:14
    #34206679
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Static array 2d
ну собственно, чтобы выделить память под весь массив, должны быть известны все его размеры.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Static array 2d / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]