Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
lirik
2 / 2 / 0
Регистрация: 17.03.2009
Сообщений: 23
#1

Классы - C++

26.03.2009, 04:58. Просмотров 753. Ответов 10
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста!
Как можно получить доступ к классу объявленному в функции ?
Например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Boxs* playbox[15];
 
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){
 
 for (int z = 0; z < 15; z++) {
  playbox[z] = new Boxs(z+1);
 }
 
}
 
void MyFunc () {
 playbox[0]->data = 123; //все работает читай, пиши сколько влезит.....
}
 
//
//А если например мне нужно объявить столько экземпляров класса ,
//сколько понадобиться для работы пользователю
//например:
//
 
 
 
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){
 
 Boxs* playbox[num];
 for (int z = 0; z < num; z++) {
  playbox[z] = new Boxs(z+1);
 }
 
}
 
void MyFunc () {
 playbox[0]->data = 123; //ошибка, playbox'а нету :(
}
Помогите пожалуйста, очень нужно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2009, 04:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы (C++):

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include &lt;iostream&gt; class Point { public: void SetX(int...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы - C++
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) - C++
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Классы возможностей(Mixin классы) - C++
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас...

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include &lt;iostream&gt; class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

10
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
26.03.2009, 06:24 #2
Попробуй перед Boxs *playbox[num] объявить num и задать ему какое-нибудь значение.
0
lirik
2 / 2 / 0
Регистрация: 17.03.2009
Сообщений: 23
26.03.2009, 06:46  [ТС] #3
нет, я написал что "а что если мне нужно объявить столько экземпляров класса ,сколько понадобиться для работы пользователю" , тоесть при старте пользователю выдаеться окошко с настройками и он вводит сколько ему нужно экземпляров , с этим у меня проблем нет, это может выглядеть примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int num;
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){
MyForm->ShowModal();//сдесь например присваиваеться какоето значение переменной num
MyConfig(num);
}
 
void MyConfig(num) {
 
 Boxs* playbox[num];
 for (int z = 0; z < num; z++) {
  playbox[z] = new Boxs(z+1);
 }
 
}
 
void MyFunc () {
 playbox[0]->data = 123; //ошибка Сдесь!!!
}
ошибка из-за того что класс объявлен в функции , и из другой функции к нему доступа нет, а каждый раз передавать его в параметрах невариант
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
26.03.2009, 07:02 #4
А если объявить как public.
0
lirik
2 / 2 / 0
Регистрация: 17.03.2009
Сообщений: 23
26.03.2009, 07:42  [ТС] #5
вот вот в этом и вапрос , как из функции объявить класс как public ? прошу прощение за неправильно поставленный вопрос.
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
26.03.2009, 07:54 #6
По моему так и будет public Boxs *playbox[num];
0
lirik
2 / 2 / 0
Регистрация: 17.03.2009
Сообщений: 23
26.03.2009, 08:01  [ТС] #7
пишет "Неопознаный символ playbox" :'(
0
Alexiski
Любитель давать советы
340 / 132 / 2
Регистрация: 12.01.2009
Сообщений: 511
26.03.2009, 08:14 #8
Внутрь функции Вы никак не заберетесь. Надо выносить объявление наружу. Например, так:
C++
1
2
3
4
5
6
7
8
9
Box** playbox = NULL;
 
void MyConfig(num) {
 
  playbox = new Box* [num];
  for (int z = 0; z < num; z++) {
     playbox[z] = new Boxs(z+1);
  }
}
1
lirik
2 / 2 / 0
Регистрация: 17.03.2009
Сообщений: 23
26.03.2009, 08:27  [ТС] #9
ооо , огроменейшее спасибо вам Alexiski !
извените, я первый раз встречаю такую запись
C++
1
Box** playbox
вы не могли бы ее пояснить
0
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
26.03.2009, 10:19 #10
ну или делаешь так

C++
1
Box *playbox;
и в самой функции создаешь вот так

C++
1
playbox = new Box[n];
где n - кол-во объектов, ипродолжаешь везде работать учитывая n...
0
Alexiski
Любитель давать советы
340 / 132 / 2
Регистрация: 12.01.2009
Сообщений: 511
26.03.2009, 22:43 #11
Цитата Сообщение от lirik Посмотреть сообщение
я первый раз встречаю такую запись
C++
1
Box** playbox
вы не могли бы ее пояснить
Указатель на указатель. Раньше у Вас был статический массив указателей на объекты,
теперь этот массив сам создается при помощи new
0
Миниатюры
Классы  
26.03.2009, 22:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2009, 22:43
Привет! Вот еще темы с ответами:

классы/дочерние классы/методы - C++
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл class Book { protected: char...

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур. - C++
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

КЛАССЫ - C++
Очень нужна помощь!!! подскажите где ошибки: #include &lt;iostream&gt; #include &lt;windows.h&gt; char* Rus(const char* text); using...

Классы в С++ - C++
Ребята, помогите пожалуйста. Я новичок в программировании, а сессия заканчивается. Нужно привести пример класса (С++): описание класса,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru