TIL::Today I Learn

[TIL] 20230726

madylin 2023. 7. 28. 14:46
반응형

오늘 공부한 내용📓

- C++

개념 공부

추상화(Abstract)

  • 객체의 공통적인 특징과 기능을 하나의 추상 클래스로 표현하는 것
  • 실제로 구현되지 않은 순수한 가상 함수들을 가지고 있는 추상 클래스를 의미
  • 추상 클래스는 인스턴스를 생성할 수 없으며, 그 자체로 완전한 클래스가 아님
  • 추상 클래스는 단지 인터페이스 역할이며, 이를 상속받은 파생 클래스에서 정의된 순수 가상 함수들을 반드시 구현하여야 함.
  • 이를 통해 다형성을 구현하는 기반을 마련하고, 다른 클래스들 간의 공통된 인터페이스를 정의하여 객체 지향 프로그래밍의 유연성과 재사용성을 증가
  • 추상 클래스를 정의하기 위해서는 하나 이상의 순수 가상 함수를 포함해야 함
    • 순수 가상 함수(pure virtual function)는 ‘virtual’ 키워드와 함께 선언되며, 함수 바디가 없고 ‘= 0’ 으로 정의됨
    • 이를 통해 파생 클래스에서 해당 함수들을 오버라이딩하여 실제 기능 구현
    class AbstractClass {
    public:
    	virtual void example() = 0;
    }
    

인터페이스(Interface)

//인터페이스 선언
class Interface {
public:
	virtual void example1() = 0;
	virtual void example2() = 0;
}

//인터페이스를 상속하는 클래스 정의
class MyClass : public Interface
{
public:
	void example1()
	{
		//함수구현
	}
	void example()
	{
		/
  • 순수 가상 함수로만 구성된 클래스로, 실제로 구현을 갖지 않는 추상화된 형태의 클래스
  • 다형성을 활용하여 서로 다른 클래스들을 통일된 인터페이스를 사용하게 하여 코드의 재사용성과 유지 보수성을 향상
  • 인터페이스는 클래스의 외부와의 통신을 위한 계약으로 볼 수 있고, 특정 기능을 수행하는 메서드의 시그니처(함수 원형)만을 제공

 

제가 공부한 내용을 기록하고 있습니다.

혹시 수정이 필요한 부분이 있다면, 댓글로 지적 부탁드립니다!

선한 관심과 도움 감사드립니다😊

반응형

'TIL::Today I Learn' 카테고리의 다른 글

GitHub push 시 매번 암호(Token) 요구하는 현상 해결하기  (0) 2024.05.12
[TIL] 20230727  (0) 2023.07.28
[TIL] 20230723  (0) 2023.07.28
[TIL] 20230721  (0) 2023.07.28
[TIL] 20230720  (0) 2023.07.28