Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Описание массива 
V
    Опции темы
Burka
Дата 20.4.2011, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Код

class myclass {
 int hours[];
 myclass();
}

...
myclass::myclass(){
hours[] = {1,2,3,4,5}; //expected primary-expression befor "{" token
}

Мне нужно описать инициализировать массив примерно таким способом, но такой вид описания работает только при и непосредственном описании массива или может у меня что то не так написано? smile

Это сообщение отредактировал(а) Burka - 20.4.2011, 15:12


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
Alca
Дата 20.4.2011, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 2
Всего: 50



Цитата

Мне нужно описать массив

инициализировать


--------------------
PM WWW ICQ Skype Jabber   Вверх
Burka
Дата 20.4.2011, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Цитата(Alca @  20.4.2011,  15:04 Найти цитируемый пост)
Цитата

Мне нужно описать массив

инициализировать 

да наверно в этом вся ошибка  smile 


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
bsa
Дата 20.4.2011, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



так нельзя. Подобная форма записи допустима при определении массива:
Код
int mas[] = {1,2,3,4};
Если тебе она нужна позарез, то делаешь структуру Data с этим массивом, делаешь глобальный константный статический объект этой структуры и инициализируешь. В твоем классе вместо массива должна быть эта же структура. В конструкторе присваиваешь структуре внутри класса значение константы.
PM   Вверх
boostcoder
Дата 20.4.2011, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



так можно:
Код

struct myclass {
   int hours[5];
   myclass()
      :hours({1,2,3,4,5})
   {}
};

int main() {
}


http://liveworkspace.org/code/c09fa945f04b...cfcc72ebffa4456
PM WWW   Вверх
Burka
Дата 20.4.2011, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Цитата(bsa @  20.4.2011,  17:23 Найти цитируемый пост)
так нельзя. Подобная форма записи допустима при определении массива:
Выделить всёкод C++
1:
    
int mas[] = {1,2,3,4};
Если тебе она нужна позарез, то делаешь структуру Data с этим массивом, делаешь глобальный константный статический объект этой структуры и инициализируешь. В твоем классе вместо массива должна быть эта же структура. В конструкторе присваиваешь структуре внутри класса значение константы. 

а как этому массиву через typedef присвоить имя? никогда не пользовался просто.

boostcoder, спасибо, выглядит красиво, но мне не подходит)


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
bsa
Дата 20.4.2011, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Если ты про структуру, то я это имел в виду:
Код
struct Data
{
   int array[5];
};

static const Data defData = { {1,2,3,4,5} };
А если про typedef:
Код
typedef int MyArrayType[5];

MyArrayType array;

PM   Вверх
Burka
Дата 21.4.2011, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



вынес из класса и сделал константным массивом. 

нашел еще эту тему, там вроде как пришли к выводу что нельзя так делать)

http://rsdn.ru/Forum/?mid=321430


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.