분류 전체보기(636)
-
C++ 초급 - 8. 객체지향 프로그래밍 (5 - C++11의 override와 final)
📌 8.5 C++11의 override와 finalC++11에서는 가상 함수 오버라이딩을 더 명확하고 안전하게 수행하기 위해 override 키워드와 final 키워드가 추가되었다.이를 통해 컴파일러가 오버라이딩 오류를 검출할 수 있으며, 클래스나 함수의 상속 및 재정의를 제한할 수도 있다.📌 1. override 키워드의 필요성🔹 (1) override란?부모 클래스의 virtual 함수를 자식 클래스에서 재정의할 때 명확하게 표시하는 키워드.컴파일러가 오버라이딩 여부를 검사하므로 실수 방지 가능.부모 클래스에 해당 함수가 없으면 컴파일 오류 발생.🔹 (2) override 없이 발생하는 문제부모 클래스의 가상 함수 이름을 잘못 입력하거나, 매개변수 리스트가 다르면 오버라이딩되지 않음.하지만, ..
2025.02.22 -
C++ 초급 - 8. 객체지향 프로그래밍 (4 - 인터페이스 개념 (Interface))
📌 8.4 인터페이스 개념 (Interface)C++에는 Java나 C#과 같은 interface 키워드는 존재하지 않지만,추상 클래스(Abstract Class)를 활용하여 인터페이스 개념을 구현할 수 있다.C++에서는 순수 가상 함수만 포함하는 클래스를 인터페이스(Pure Interface)로 사용하며, 이를 통해 다중 상속(Multiple Inheritance)과 다형성(Polymorphism)을 활용한 설계가 가능하다.📌 1. 인터페이스의 정의🔹 (1) C++에서의 인터페이스란?C++에는 interface 키워드가 존재하지 않음.대신 순수 가상 함수(virtual 함수명() = 0;)만 포함하는 추상 클래스를 인터페이스로 사용.인터페이스는 메서드의 "명세"만 제공하고, 실제 구현은 파생 클래..
2025.02.22 -
C++ 초급 - 8. 객체지향 프로그래밍 (3 - 순수 가상 함수 (= 0))
📌 8.3 순수 가상 함수 (= 0)C++에서 순수 가상 함수(Pure Virtual Function)는 자식 클래스에서 반드시 구현해야 하는 가상 함수를 의미한다.이를 포함하는 클래스를 추상 클래스(Abstract Class)라고 하며, 추상 클래스는 직접 인스턴스를 생성할 수 없고, 인터페이스 역할을 한다.📌 1. 순수 가상 함수란? (virtual 함수명() = 0;)🔹 (1) 순수 가상 함수 정의순수 가상 함수(Pure Virtual Function)는 = 0을 사용하여 선언하는 함수.구현 없이 선언만 존재하며,해당 클래스를 상속받은 자식 클래스에서 반드시 오버라이딩해야 함.💡 기본 문법class 클래스이름 {public: virtual void 함수명() = 0; // 순수 가상 ..
2025.02.22 -
C++ 초급 - 8. 객체지향 프로그래밍 (2 - virtual 함수와 오버라이딩 (Overriding))
📌 8.2 virtual 함수와 오버라이딩 (Overriding)C++에서 가상 함수(virtual function)는 동적 바인딩(Dynamic Binding)을 활용하여,파생 클래스(자식 클래스)에서 부모 클래스의 함수를 재정의(Overriding)할 수 있도록 하는 기능이다.이를 통해 다형성(Polymorphism)을 구현하고, 객체지향 프로그래밍(OOP)의 핵심 개념을 실현할 수 있다.📌 1. 가상 함수 (virtual function)의 개념과 필요성🔹 (1) 정적 바인딩(Static Binding) vs. 동적 바인딩(Dynamic Binding)정적 바인딩(Static Binding): 컴파일 타임에 호출할 함수를 결정.동적 바인딩(Dynamic Binding): 런타임에 객체의 타입을..
2025.02.22 -
C++ 초급 - 8. 객체지향 프로그래밍 (1 - 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism))
📌 8. 객체지향 프로그래밍 (OOP)C++은 객체지향 프로그래밍(Object-Oriented Programming, OOP) 언어이며,캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism)을 기본 개념으로 한다.또한 가상 함수(Virtual Function), 인터페이스(Interface), C++11의 새로운 기능(override, final, explicit) 등을 포함하여 OOP의 핵심 개념을 학습한다.📌 8.1 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism)C++의 객체지향 프로그래밍(OOP)은 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism)을 핵심 ..
2025.02.22 -
C++ 초급 - 7. 구조체와 클래스 (6 - const 멤버 함수)
📌 7.6 const 멤버 함수C++에서 const 멤버 함수는 객체의 데이터를 변경하지 않도록 보장하는 함수이다.이를 활용하면 코드의 안정성을 높이고, 불필요한 데이터 변경을 방지하여 예측 가능한 설계를 할 수 있다.또한, const 객체에서는 const 멤버 함수만 호출 가능하며, mutable 키워드를 사용하면 특정 멤버 변수만 예외적으로 변경 가능하다.📌 1. const 멤버 함수 선언 및 활용🔹 (1) const 멤버 함수란?멤버 변수 값을 변경하지 않는 멤버 함수.함수 선언 뒤에 const 키워드를 붙이면, 해당 함수는 객체의 멤버 변수를 변경할 수 없음.객체의 상태를 읽기 전용으로 유지하는 함수에 사용.💡 기본 문법class 클래스명 {public: 반환타입 함수명() const..
2025.02.22