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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите с функциями  (Прочитано 3270 раз)
daimon
Гость
« : Декабрь 08, 2009, 00:13 »

Код
C++ (Qt)
#ifndef WIDGET_PROGRESS_BAR_H
#define WIDGET_PROGRESS_BAR_H
 
 
 
 
#include <QProgressDialog>
#include <QProgressBar>
 
 
class Dialog_progress_bar : public QProgressDialog
{
Q_OBJECT
 
private:
QProgressBar* progressBar;
 
 
 
public:
Dialog_progress_bar(QWidget *parent = 0,Qt::WindowFlags f = 0 );
Dialog_progress_bar( const QString & labelText, const QString & cancelButtonText, int minimum, int maximum, QWidget * parent = 0, Qt::WindowFlags f = 0 );
~Dialog_progress_bar();
 
 
public slots:
void setFormat(const QString & format)
{
 
progressBar->setFormat(format);
 
 
 
}
void setTextVisible(bool vis)
{
progressBar->setTextVisible(vis);
}
 
void text()
{
progressBar->text();
}
QProgressBar* progress_bar() const
{
return progressBar;
}
 
 
};
Как написать в оределении функции, то что функция будет дублироватся с другого класса, например text() написать попроще (не писать тело функции)?Что-то типа конструктора базового класса при наследовании Обеспокоенный
« Последнее редактирование: Декабрь 08, 2009, 00:22 от daimon » Записан
Павел_F.
Гость
« Ответ #1 : Декабрь 08, 2009, 07:40 »

При наследовании функции тоже наследуются. И обратится к ним можно так же как и к своим. А если есть своя такая же то к функции предка с помощью :: можно достучаться.
Что касается text()... Ты же прогрессБар не наследуеш, значит и наследование тут не при чем. Пиши как пишеш иначе никак.

Одного не пойму... Зачем классу, потомку ПрогрессДиалога, еще один свой прогрессбар???

PS: и в определении класса писать реализацию функций все же не стоит.
« Последнее редактирование: Декабрь 08, 2009, 07:48 от Павел_F. » Записан
daimon
Гость
« Ответ #2 : Декабрь 08, 2009, 19:16 »

При наследовании функции тоже наследуются. И обратится к ним можно так же как и к своим. А если есть своя такая же то к функции предка с помощью :: можно достучаться.
Что касается text()... Ты же прогрессБар не наследуеш, значит и наследование тут не при чем. Пиши как пишеш иначе никак.

Одного не пойму... Зачем классу, потомку ПрогрессДиалога, еще один свой прогрессбар???

PS: и в определении класса писать реализацию функций все же не стоит.
Там просто установлен свой stylesheet (большая строка), а я хочу использовать этот диалог много раз (и каждый раз писать эту строку?)
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Декабрь 09, 2009, 01:38 »

>>то к функции предка с помощью :: можно достучаться.
Не знаток С++, но по моему "::" это доступ, просто к глобально определённому идентификатору (функции, переменной, ..)
К предку обращаются через имя его класса, например:
QWidget::show()
Записан

Юра.
Павел_F.
Гость
« Ответ #4 : Декабрь 09, 2009, 08:44 »

>>то к функции предка с помощью :: можно достучаться.
Не знаток С++, но по моему "::" это доступ, просто к глобально определённому идентификатору (функции, переменной, ..)
К предку обращаются через имя его класса, например:
QWidget::show()
Я имел ввиду что нужно пользовать оператор ::, само собой предка нужно указать. Но предок у всех свой поэтому сказал оператор а как его использовать оставил на обдумывание автору.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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