3 / 3 / 0
Регистрация: 22.05.2010
Сообщений: 77
1

Вызов метода класса без создания экземпляра класса.

21.05.2011, 17:01. Показов 12332. Ответов 3
Метки нет (Все метки)

В общем мне для функционирования одной программы нужно постоянно вызывать метод одного из классов. Я это делаю с помощью new - delete. Мне кажется, что ради вызова одного метода (а вызывать мне его нужно постоянно) создавать экземпляр а потом его удалять как то достаточно сурово (что называется из пушки по воробьям). Возможны ли другие решения данного вопроса?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2011, 17:01
Ответы с готовыми решениями:

Вызов метода производного класса через обращение к методу базового класса
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp,...

Вызов динамического метода класса по указателю на объект класса
Как это можно сделать? И хотелось бы как можно проще.

Вызов метода внутреннего класса методом внешнего класса
Не могу разобраться как реализовать вложенный класс и как его вызвать. Занимаюсь по Лафоре, про...

Вызов метода базового класса из класса-потомка
Нужно вызывать из метода, переопределенного в потомке, соответствующий метод базового класса. При...

3
64 / 64 / 17
Регистрация: 25.08.2008
Сообщений: 178
21.05.2011, 17:09 2
1-ый вариант: Насколько я знаю, конечно, если не ошибаюсь, можно создать в твоем классе статическую функцию, которую вызвать можно без создания экземпляра класса.

2-ой вариант: Если знаком с функторами и библ. boost, то можно воспользоваться function и присвоить ему ссылку на твой метод класса. И тогда сможешь вызывать свой метод, когда захочешь, не создавая при этом экземпляр класса
0
363 / 364 / 167
Регистрация: 11.06.2010
Сообщений: 703
21.05.2011, 17:14 3
ovoshlook, если метод вызывается в другом методе класса этого же класса, то не надо создавать экземпляр класса.
C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
    ...
    void func1();
    void func2()
    {
         ...
         func1();
         ...
    }
    ...
};
Покажите код.
0
3 / 3 / 0
Регистрация: 22.05.2010
Сообщений: 77
21.05.2011, 17:16  [ТС] 4
-comrade-,
Не. Это я понимаю что не нужно. В том то и дело что метод вызывается в методе другого класса.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void OTS_MainWindow::ChosenQuestionEvent(int)
{
 
    Q=new Question;
    if (QuestionTabWidget->currentIndex()>-1)
        {
            if (TypeOfQuestionComboBox->currentIndex()==1)
                {
                    DeleteAllWidgets(QuestionTabWidget->currentWidget()->layout());
                    Q->SingleOrManyVariantsQuestionForm(QuestionTabWidget);
                }
            delete Q;
        }
    else
        QMessageBox::information(0,tr("information"),tr("No tabs for adding"),QMessageBox::Ok|QMessageBox::NoButton);
}
Цитата Сообщение от dyosick Посмотреть сообщение
1-ый вариант: Насколько я знаю, конечно, если не ошибаюсь, можно создать в твоем классе статическую функцию, которую вызвать можно без создания экземпляра класса.

2-ой вариант: Если знаком с функторами и библ. boost, то можно воспользоваться function и присвоить ему ссылку на твой метод класса. И тогда сможешь вызывать свой метод, когда захочешь, не создавая при этом экземпляр класса
Первый вариант не совсем подходит поскольку этот метод должен создавать еще много объектов которые описаны в этом же классе (ну например на пустое окно накидывает несколько кнопок и тп которые описаны в классе, метод которого я вызываю). Тогда придется описывать все эти объекты как статики. Но вопрос в том что эти экземпляры создаются несколько раз, на разных окнах и получается что ссылаться они будут на одну область памяти. Ну по кайней мере в моем понимании так. может я чего то недопонял конечно.

Со вторым вариантом не знаком. сейчас буду читать)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2011, 17:16

Вызов метода из vector(a) в функции main без использования вызова execute внутри класса
Добрый день столкнулся с проблемой, что просто не могу вызвать метод из вектора в функции main. Код...

Вызов метода класса из метода другого класса
Помогите школнегу Имеется несколько классов class Com { protected: unsigned char bufrd,...

Ошибка создания экземпляра класса
Собственно ошибка в мейне error C2227: left of '->AddLast' must point to class/struct/union/generic...

Способ создания экземпляра класса
Ниже в скрипте отметила два варианта. В чужих скриптах встречаю оба время от времени. Интересно, в...


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

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

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