It won't hurt to try
[C++/윈도우프로그래밍응용]30. Qt의 메인 윈도우 (1) 본문
C++의 상속
객체지향 언어의 가장 중요한 특징
캡슐화(Encapsulation)
- 데이터(속성)와 데이터 처리 함수(메서드)를 하나로 묶는 것
- 외부에 캡슐화된 객체의 세부 사항이 숨겨지고,
캡슐화된 객체들은 재사용이 용이(정보 은닉)
정보은닉(Information Hiding)
- 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용
추상화(Abstraction)
- 객체의 속성 중 가장 중요한 것에만 중점을 두어 불필요한 부분을 생략(모델화)
상속(Inheritance)
- 이미 정의된 기반(부모) 클래스에서 정의된 속성(자료, 함수)를 파생(자식) 클래스에서 내려받아 그대로 사용
- 하위 클래스는 상위 클래스의 모든 속성과 연산(함수)을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속성으로 사용
→ 기존의 소스 코드 재사용
다형성(Polymorphism)
- 객체(클래스)가 연산(함수)을 수행하게 될 때 메시지에 대해 각 객체(클래스)의 고유한 방법(특성)으로 응답
- 객체(클래스)들은 같은 기능에 대해 동일한 메소드명을 사용 가능
상속
C++에서 각 클래스의 속성을 공유하고 물려받는 객체지향 프로그래밍의 상속(inheritance)을 구현
기반 클래스(base class)
- 기반(베이스) 클래스(base class) / 부모 클래스(parent class) / 슈퍼 클래스
- 이미 만들어진 기존의 클래스
파생 클래스(derived class)
- 파생 클래스(derived class) / 자식 클래스 / 하위 클래스
- 이를 상속 받아 새로 만들어지는 클래스
사용자 정의 위젯
Qt의 위젯들은 QWidget 클래스를 상속
QWidget을 상속받는 클래스를 생성하고 생성자에게 화면을 구성
- 자식 클래스는 콜론(:)을 활용해 부모 클래스와 연결
- widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
class Widget : public QWidget {
Q_OBJECT
public:
widget(QWidget *parent = 0);
~Widget();
};
#endif // WIDGET_H
widget.cpp
qApp는 QApplication 클래스의 전역 인스턴스 → 헤더 파일 필요
#include <QApplication>
#include <QPushButton>
300x250
300x250
'C++ > 윈도우프로그래밍응용' 카테고리의 다른 글
[C++/윈도우프로그래밍응용]32. 다이얼로그 (0) | 2021.11.28 |
---|---|
[C++/윈도우프로그래밍응용]31. Qt의 메인 윈도우 (2) (0) | 2021.11.22 |
[C++/윈도우프로그래밍응용]29. 윈도우의 구성과 레이아웃 매니저 (0) | 2021.11.16 |
[C++/윈도우프로그래밍응용]28. Qt의 기본 프로그래밍 (0) | 2021.11.13 |
[C++/윈도우프로그래밍응용]27. Qt의 개요 (0) | 2021.11.09 |
Comments