Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Оператор "new" и область видимости - однако, проблема... / 7 сообщений из 7, страница 1 из 1
17.09.2004, 04:55
    #32698909
Lepsty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор "new" и область видимости - однако, проблема...
Спасибо всем заглянувшим и извинения за расплывчатую формулировку проблемы им же (вам же).
Проблема такая: В модуле объявлен массив указателей Houses на класс Poly (динамический).
В функции CreatePoly() я этот массив создаю и создаю первый его элемент.
Все нормально. Но какого же лешего объявленный вне функций массив Houses не виден нигде, кроме той функции (CreatePoly()), где он создается? Например, в TForm1::Button1Click()?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Poly **Houses; 
 //--------------------------------------------------------------------------- 
void __fastcall CreatePoly() {
   Poly **Houses = new Poly*[ 12 ];
   Poly *Houses[ 0 ] = new Poly( 3 ,  10000 , 60000 ,  30000 , 50000 ,  10000 , 70000 );
   Houses[ 0 ]->IdentNumb =  1 ;
}
 //--------------------------------------------------------------------------- 
void __fastcall TForm1::Button1Click(TObject *Sender) {
   CreatePoly();
   Houses[ 0 ]->Rescale(Image1);
   Houses[ 0 ]->Draw(Image1);
}
...
Рейтинг: 0 / 0
17.09.2004, 05:07
    #32698912
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор "new" и область видимости - однако, проблема...
а чего у тебя два Houses?
один глобальный, другой в CreatePoly.
Ты убери оттуда описание типа, тогда все будет пучком.
типа так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Poly **Houses; 
 //--------------------------------------------------------------------------- 
void __fastcall CreatePoly() {
   Houses = new Poly*[ 12 ];
   Poly *Houses[ 0 ] = new Poly( 3 ,  10000 , 60000 ,  30000 , 50000 ,  10000 , 70000 );
   Houses[ 0 ]->IdentNumb =  1 ;
}
 //--------------------------------------------------------------------------- 
void __fastcall TForm1::Button1Click(TObject *Sender) {
   CreatePoly();
   Houses[ 0 ]->Rescale(Image1);
   Houses[ 0 ]->Draw(Image1);
}
...
Рейтинг: 0 / 0
17.09.2004, 05:10
    #32698913
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор "new" и область видимости - однако, проблема...
и еще...
помести описание Houses в описание класса TForm1
а то, потом понадобится создать одновременно две формы, а работать они будут с одним и тем же указателем.
...
Рейтинг: 0 / 0
17.09.2004, 05:39
    #32698915
Lepsty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор "new" и область видимости - однако, проблема...
Огромное спасибо. За второй совет отдельное спасибо.
P.S. Я уже все варианты перепробовал и меня не оставляет ощущение, что и
Код: plaintext
1.
void __fastcall CreatePoly() {
   Houses = new Poly*[ 12 ];
тоже пробовал. Я даже почти уверен в этом :-) Это просто колдунство какое-то...
...
Рейтинг: 0 / 0
17.09.2004, 05:54
    #32698916
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор "new" и область видимости - однако, проблема...
так я не понял.
не работает чтоли? выдает ошибку на стадии компиляции?
...
Рейтинг: 0 / 0
17.09.2004, 05:57
    #32698917
Lepsty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор "new" и область видимости - однако, проблема...
Да нет же! Работает как из пушки! Ни капли иронии в моем посте не было. Спасибо!
...
Рейтинг: 0 / 0
17.09.2004, 05:59
    #32698918
Lepsty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оператор "new" и область видимости - однако, проблема...
Про все перепробованные варианты - это было про мои развлечения до обращения сюда за помощью...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Оператор "new" и область видимости - однако, проблема... / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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