Russian Qt Forum
Ноябрь 24, 2024, 18:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Где и как определить функцию для использования ее в разных классах одного проект  (Прочитано 4942 раз)
smilik
Гость
« : Май 18, 2016, 17:03 »

Добрый день!!! Требуется функция, которая будет использоваться в разных классах одного проекта. Как ее реализовать, чтобы в каждом классе не определять одну и туже функцию.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Май 18, 2016, 17:08 »

  • Если классы имеют общего предка, то реализовать функцию в базовом
  • В отдельном h/cpp файле реализовать и инклудить в нужных местах
Записан

kai666_73
Крякер
****
Offline Offline

Сообщений: 319


Просмотр профиля
« Ответ #2 : Май 18, 2016, 17:44 »

Третий вариант - создать класс с необходимой функцией и микшировать его во все классы где эта ф-я необходима.
Записан
smilik
Гость
« Ответ #3 : Май 19, 2016, 09:38 »

Спасибо за ответы!!! Я просто читаю, что есть вариант объявить и реализовать эту функцию в одном классе, а в другом классе объявить с припиской extern и можно ее использовать. Но у меня не получается так
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Май 19, 2016, 11:48 »

через extern это должна быть функция вне класса. если хочешь, чтобы она была в классе, это будет static метод.
Код
C++ (Qt)
// f.h
extern void f();
 
// f.cpp
void f() {}
 
// main.cpp
#include "f.h"
 
int main() {
   f();
   return 0;
}
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
smilik
Гость
« Ответ #5 : Май 19, 2016, 13:32 »

все, спасибо, получилось !!!  Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Май 19, 2016, 15:35 »

Вообще-то (при)писка extern для ф-ции не нужна, был бы прототип. И вопрос радует: сначала осваиваем классы, потом все остальное  Улыбающийся
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #7 : Май 19, 2016, 15:49 »

Вообще-то (при)писка extern для ф-ции не нужна, был бы прототип. И вопрос радует: сначала осваиваем классы, потом все остальное  Улыбающийся

Ну классика - "выучу по ходу".
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Май 19, 2016, 15:51 »

Вообще-то (при)писка extern для ф-ции не нужна, был бы прототип.
точно, это ж только для переменных надо
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
smilik
Гость
« Ответ #9 : Май 19, 2016, 16:18 »

у меня немножко другая ситуация

Код
C++ (Qt)
// f.h
void f();
// f.cpp
void f() {}
 
// g.h
extern void f();
// g.cpp
f();
 

Раньше просто не было необходимости это использовать Улыбающийся
Ну или видимо так:
Код
C++ (Qt)
// f.h
void f();
// f.cpp
void f() {}
 
// g.cpp
#include "f.h"
f();
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.123 секунд. Запросов: 22.