Russian Qt Forum

Qt => Общие вопросы => Тема начата: daimon от Декабрь 08, 2009, 00:13



Название: Помогите с функциями
Отправлено: 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() написать попроще (не писать тело функции)?Что-то типа конструктора базового класса при наследовании :-[


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

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

PS: и в определении класса писать реализацию функций все же не стоит.


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

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

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


Название: Re: Помогите с функциями
Отправлено: lit-uriy от Декабрь 09, 2009, 01:38
>>то к функции предка с помощью :: можно достучаться.
Не знаток С++, но по моему "::" это доступ, просто к глобально определённому идентификатору (функции, переменной, ..)
К предку обращаются через имя его класса, например:
QWidget::show()


Название: Re: Помогите с функциями
Отправлено: Павел_F. от Декабрь 09, 2009, 08:44
>>то к функции предка с помощью :: можно достучаться.
Не знаток С++, но по моему "::" это доступ, просто к глобально определённому идентификатору (функции, переменной, ..)
К предку обращаются через имя его класса, например:
QWidget::show()
Я имел ввиду что нужно пользовать оператор ::, само собой предка нужно указать. Но предок у всех свой поэтому сказал оператор а как его использовать оставил на обдумывание автору.