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

C++/CLI

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
pfrost982
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
#1

Если внутри функции создается объект с помощью gcnew, он создается один раз или при каждом вызове? - C++/CLI

04.04.2012, 13:30. Просмотров 3037. Ответов 8
Метки нет (Все метки)

Обработчик по нажатию кнопки Visual C++ 2010

C++ (Qt)
1
2
3
4
5
    private: System::Void but1_Click(System::Object^  sender, System::EventArgs^  e) {
            Random ^randnum = gcnew Random();
            int num = randnum->Next(10);
            label1->Text = Convert::ToString(num);
            }
Если внутри функции создается объект с помощью gcnew, он создается один раз или при каждом вызове?
И как он уничтожается - автоматически?
Я новичек, заранее спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2012, 13:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Если внутри функции создается объект с помощью gcnew, он создается один раз или при каждом вызове? (C++/CLI):

Как из Range поместить данные в массив, если объект таблица excel создается в VB? - VBA
Пусть имеем объект таблицу Excel созданную в VB Set xl = CreateObject('excel.sheet') Подскажите пожалуйста как содержимое ячеек...

Не создается новый объект при new DataTable() - C#
Здравствуйте! Только что пошатнулись мои знания .Net'а. Сначала делал так:DataTable ddt = GetTableFromSQL(); MemoryStream ms = new...

Написать программу, в которой при нажатии на кнопку динамически создается объект типа TListBox - C++ Builder
Помогите пожалуйста очень нужна ваша помощь Написать программу, в которой при нажатии на кнопку динамически создается объект типа...

Почему при изменении окна каждый раз создается новый обьект? - Java SE
сам код: import java.awt.BorderLayout; import java.awt.Button; import java.awt.event.ActionEvent; import...

интерфейс, в методе которого создается объект типа IDictionary и возвращается ссылка на этот объект - C++
Привет всем. Необходимо реализовать интерфейс, в методе которого создается объект типа IDictionary и возвращается ссылка на этот объект. Не...

Создается только один потомок и не создаются дополнительные при следующем входе в цикл - C Linux
#include <stdio.h> int main () { int i; for (i = 0; i < 2; i ++) { fork(); printf ("."); ...

8
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
04.04.2012, 13:59 #2
Цитата Сообщение от pfrost982 Посмотреть сообщение
Если внутри функции создается объект с помощью gcnew, он создается один раз или при каждом вызове?
При каждом вызове.
Цитата Сообщение от pfrost982 Посмотреть сообщение
И как он уничтожается - автоматически?
Да.
1
pfrost982
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
04.04.2012, 14:24  [ТС] #3
а если я создам его в myform.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// myform.cpp: главный файл проекта.
 
#include "stdafx.h"
#include "Form1.h" //!!!
 
using namespace myform;
 
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
    Random ^randnum = gcnew Random(); //!!!!!!
    // Включение визуальных эффектов Windows XP до создания каких-либо элементов управления
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false); 
 
    // Создание главного окна и его запуск
    Application::Run(gcnew Form1());
    return 0;
}
то как мне его объявить и передать в Form1.h где я его использую в обработчике нажатия кнопки?
Заранее спасибо)
0
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
05.04.2012, 12:07 #4
Цитата Сообщение от pfrost982 Посмотреть сообщение
то как мне его объявить и передать в Form1.h где я его использую в обработчике нажатия кнопки?
Заранее спасибо)
Его можно объявить в самом Form1.h за пределами функций, но до первого использования.
1
pfrost982
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
05.04.2012, 14:26  [ТС] #5
Цитата Сообщение от kazak Посмотреть сообщение
Его можно объявить в самом Form1.h за пределами функций, но до первого использования.
пробовал, а он мне ответил:
"randnum: глобальная или статическая переменная не может быть управляемого типа "System::Random ^"

вопрос могу ли я создать этот объект и использовать в функции, чтобы он не создавался и уничтожался при каждом вызове?
0
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
05.04.2012, 15:10 #6
Цитата Сообщение от pfrost982 Посмотреть сообщение
вопрос могу ли я создать этот объект и использовать в функции, чтобы он не создавался и уничтожался при каждом вызове?
Если он ни глобальным, ни статическим не может быть, то нет. Есть вариант сделать этот объект, допустим, открытым членом формы. Форма и ее элементы должны быть видны из обработчика.
1
pfrost982
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
05.04.2012, 15:16  [ТС] #7
Цитата Сообщение от kazak Посмотреть сообщение
Если он ни глобальным, ни статическим не может быть, то нет. Есть вариант сделать этот объект, допустим, открытым членом формы. Форма и ее элементы должны быть видны из обработчика.
Спасибо, брат, что возишься со мной, но я не знаю что такое открытый член формы, и как сделать объект открытым членом формы.

И еще мысль пришла а если его объявить и создать в main() а в Form.h объявить как extern, сейчас просто нет возможности попробовать.
0
kazak
3057 / 2378 / 160
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
06.04.2012, 00:17 #8
Нужно объявить его в теле класса формы, инициализацию сделать в конструкторе класса. И лучше его объявить все таки скрытым.
Если внутри функции создается объект с помощью gcnew, он создается один раз или при каждом вызове?
1
pfrost982
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
06.04.2012, 08:51  [ТС] #9
дошло до меня что ты имел ввиду), у меня вылетело из головы что форма это класс: мы добавляем ему члена и как положено инициализируем в конструкторе - гармонично получается, спасибо за очередное просветление))), понемногу начинаю вспоминать, я программировал в университете 10 лет назад (бармэном работаю уже 8 лет), сейчас решил посмотреть насколько я от жизни отстал и новое хобби завести, Прата С. читаю сейчас, вхожу потихоньку в тему.

Добавлено через 10 минут
Проблема решена все отлично работает)))))
0
06.04.2012, 08:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 08:51
Привет! Вот еще темы с ответами:

не создается объект - PHP
добрый час. подскажите , почему не могу использовать сеттер при создании объекта ? class User{ protected $login; protected...

Не создается объект - C#
почему не создается мячик? using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

Не создается объект - C++
Есть абстрактный класс от него 2 наследника. В этом классе есть итератор вершин графа template &lt;class Vertex, class Edge&gt; class ABCG { ...

Не создается объект - C++ Qt
Всем добрый день, уже который час бьюсь с ошибкой, объект класса OpenForm спокойно создается, а других классов, хоть убей-не хочет....


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

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

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