Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2010, 19:13   #1
uzumaxy
 
Аватар для uzumaxy
 
Регистрация: 04.08.2009
Сообщений: 7
Печаль Массив компонентов

Только начал делать программу, а уже возникла непонятная мне проблема...
Дело в том что я хочу создавать не константное количество компонентов во время работы программы, для этого использую такой принцип:
Код:
Array=new TUzuEdit *[AmntLine];
for (i=0;i<AmntLine;i++) Array[i]=new TUzuEdit [AmntColumn];
,где AmntLine, AmntColumn - кол. строк и столбцов компонентов; Array - указатель на указатель типа TUzuEdit;
Компилятор выдает ошибку : [C++ Error] MainUnit.cpp(22): E2248 Cannot find default constructor to initialize array element of type 'TUzuEdit'. Пробовал такое делать не только с компонентом TUzuEdit, а и с другими - та же ошибка.

Разъясните мне пожалуйста что нужно делать для устранения ошибки.
Вложения
Тип файла: rar Matrix.rar (319.6 Кб, 10 просмотров)

Последний раз редактировалось uzumaxy; 16.03.2010 в 19:16. Причина: Забыл вставить дополнение.
uzumaxy вне форума Ответить с цитированием
Старый 16.03.2010, 20:24   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Сталкивался с подобной проблемой, знаю теперь такой метод:
Код:
Array=new TUzuEdit **[AmntLine];
for (i=0;i<AmntLine;i++)
 {
 Array[i]=new TUzuEdit *[AmntColumn];
 for (int j = 0; j < AmntColumn; j++)
  Array[i][j] = new TUsuEdit(/*Аргументы конструктора*/);
 }
Судя по всему, иначе решить проблему нельзя, т.к. если конструктора по умолчанию нет, то массив объектов такого типа можно создать только разве что списком инициализации, а для массивов произвольного размера такое не проходит.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 16.03.2010, 21:12   #3
uzumaxy
 
Аватар для uzumaxy
 
Регистрация: 04.08.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Гром Посмотреть сообщение
Сталкивался с подобной проблемой, знаю теперь такой метод:
Код:
Array=new TUzuEdit **[AmntLine];
for (i=0;i<AmntLine;i++)
 {
 Array[i]=new TUzuEdit *[AmntColumn];
 for (int j = 0; j < AmntColumn; j++)
  Array[i][j] = new TUsuEdit(/*Аргументы конструктора*/);
 }
Судя по всему, иначе решить проблему нельзя, т.к. если конструктора по умолчанию нет, то массив объектов такого типа можно создать только разве что списком инициализации, а для массивов произвольного размера такое не проходит.
При подобном объявлении пишет :
[C++ Error] MainUnit.cpp(21): E2034 Cannot convert 'TUzuEdit * * *' to 'TUzuEdit * *'
[C++ Error] MainUnit.cpp(22): E2034 Cannot convert 'TUzuEdit * *' to 'TUzuEdit *'
uzumaxy вне форума Ответить с цитированием
Старый 16.03.2010, 21:29   #4
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Соответственно,
Код:
TUzuEdit *** Array;
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06
Пропадание компонентов Terran Компоненты Delphi 2 03.11.2008 18:07
Массив компонентов TEdit Prisian Компоненты Delphi 6 28.12.2007 20:08