본문 바로가기
C++ 200제/코딩 IT 정보

Qt C++ 다중상속 예제 (Multiple inheritance) 프로그래밍 소스

by vicddory 2018. 3. 31.

Qt C++ 다중상속 예제 (Multiple inheritance) 프로그래밍 소스


해외 블로거의 글을 번역한 포스트입니다. 아쉽게도 원래 글을 적으신 분이 블로그를 폭파하셔서 링크는 남길 수가 없네요.


Qt도 C++ 계열이라 여기서 소개하는 소스는 C++과 관련된 어느 소스에나 적용할 수 있습니다.

다중상속 예제는 계산기 구현으로 이뤄졌으니 참고하세요. Qt C++ 다중상속 예제 시작합니다.


qt 다중상속 예제[Qt C++ 다중상속 예제]


CalculatorForm 정의

CalculatorForm에는 ui_calculatorform.h 파일이 포함됩니다.


1
#include "ui_calculatorform.h"
cs


모든 클래스들은 QWidge와 Ui::CalculatorForm의 서브 클래스로 선언됩니다.

1
2
3
4
5
6
7
8
9
10
11
class CalculatorForm : public QWidget, private Ui::CalculatorForm
{
    Q_OBJECT
 
public:
    CalculatorForm(QWidget *parent = 0);
 
private slots:
    void on_inputSpinBox1_valueChanged(int value);
    void on_inputSpinBox2_valueChanged(int value);
};
cs


CalculatorForm 구현 (다중상속 기반)

생성자에서 setupUi() 함수로 인터페이스 파일들을 불러옵니다.


1
2
3
4
5
CalculatorForm::CalculatorForm(QWidget *parent)
    : QWidget(parent)
{
    setupUi(this);
}
cs


on_inputSpinBox1_valueChanged()와 on_inputSpinBox2_valueChanged()란 두 함수를 추가합니다.


하나의 함수가 동작하면 다른 함수에도 영향을 미칩니다.


1
2
3
4
5
6
7
8
9
void CalculatorForm::on_inputSpinBox1_valueChanged(int value)
{
    outputWidget->setText(QString::number(value + inputSpinBox2->value()));
}
 
void CalculatorForm::on_inputSpinBox2_valueChanged(int value)
{
    outputWidget->setText(QString::number(value + inputSpinBox1->value()));
}
cs


다중상속 예제 main() 함수

main() 함수는 QApplication과 CalculatorForm를 인스턴스화하며, show() 함수를 호출하여 결과를 출력합니다.


1
2
3
4
5
6
7
8
9
10
11
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    CalculatorForm calculator;
#if defined(Q_OS_SYMBIAN)
    calculator.showMaximized();
#else
    calculator.show();
#endif
    return app.exec();
}
cs


응용 프로그램에 다른 Form을 추가하는 방법엔 여러가지가 있으며 다중상속은 그 중 하나입니다.


Qt C++ 다중상속 예제 (Multiple inheritance) 프로그래밍 소스

댓글