It won't hurt to try

[C++/윈도우프로그래밍응용]30. Qt의 메인 윈도우 (1) 본문

C++/윈도우프로그래밍응용

[C++/윈도우프로그래밍응용]30. Qt의 메인 윈도우 (1)

yongki.doki 2021. 11. 18. 09:25

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
Comments