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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив объектов (ref class), Не могу создать массив объектов 
:(
    Опции темы
ZA3A24
Дата 24.3.2009, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пишу программу на C++ в среде CLR (Windows Form Application)

Мне нужен массив таких штуковин как цвета (System::Drawing::Color).

Вот я и создаю массив и инициализирую его:
Код

static array<Color^>^ColorMas = {Color::Red, Color::Orange, Color::Yellow, Color::Green, Color::AliceBlue, Color::Blue, Color::Violet};


И пытаюсь использовать:
Код

SolidBrush^ brush = gcnew SolidBrush(ColorMas->GetValue[0]);


На что получаю от компилятора:

error C3867: 'System::Array::GetValue': function call missing argument list; use '&System::Array::GetValue' to create a pointer to member

и

error C2109: subscript requires array or pointer type


То есть, требуется указатель, но как же его создать?????

Это сообщение отредактировал(а) ZA3A24 - 24.3.2009, 12:55
PM MAIL   Вверх
andrew_121
Дата 24.3.2009, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

Репутация: 10
Всего: 33



ZA3A24, Это не С++.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
ZA3A24
Дата 24.3.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(andrew_121 @ 24.3.2009,  13:15)
ZA3A24, Это не С++.

Это еще почему???

Проект-то под Си++
PM MAIL   Вверх
andrew_121
Дата 24.3.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

Репутация: 10
Всего: 33



ZA3A24, Долго обьяснять... Не С++ и все тут!


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Dmi3ev
Дата 24.3.2009, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 13
Всего: 41



Цитата

Мне нужен массив таких штуковин как цвета (System::Drawing::Color).

так используй enum


--------------------

PM MAIL   Вверх
ZA3A24
Дата 24.3.2009, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(andrew_121 @ 24.3.2009,  13:37)
ZA3A24, Долго обьяснять... Не С++ и все тут!

Попробуй... Не понимаю...

>так используй enum
Это каким образом???


Это сообщение отредактировал(а) ZA3A24 - 24.3.2009, 13:49
PM MAIL   Вверх
NightmareZ
Дата 24.3.2009, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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

Репутация: 0
Всего: 13



В первой строчке убери ^ после Color. Потому что Color - это значимый тип, а не ссылочный.
Код

static array<Color>^ ColorMas = {Color::Red, Color::Orange, Color::Yellow, Color::Green, Color::AliceBlue, Color::Blue, Color::Violet};


Во второй строчке просто обращайся по индексу. У тебя ж ColorMas - массив. Зачем GetValue?
Код

SolidBrush^ brush = gcnew SolidBrush(ColorMas[0]);


Это сообщение отредактировал(а) NightmareZ - 24.3.2009, 16:32


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
ZA3A24
Дата 24.3.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо, это я уже сделал...
Вот теперь другая проблема:

Надо массив на этот раз из точек (Point), причем заполняться он должен не при объявлении...
Код

Array^ VertexMas;


Позже
Код

VertexMas->CreateInstance
(   
/*Вот здесь нужен идентификатор типа - где его взять? что-то вроде "typeid(Point)"?? */,
/*а тут указываем длину массива - ну с этим проблем нету )))*/
);


Это сообщение отредактировал(а) ZA3A24 - 24.3.2009, 16:44
PM MAIL   Вверх
NightmareZ
Дата 24.3.2009, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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

Репутация: 0
Всего: 13



Во-первых, метод CreateInstance - статический метод класса Array. Я бы не стал вызывать его через ссылку на дочерний класс.
Во-вторых, да, typeid....

Код

Array^ VertexMas;

// ....

VertexMas = Array::CreateInstance(Point::typeid, 100);



--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
ZA3A24
Дата 24.3.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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

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

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


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

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


 




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


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

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