Programming Languages(81)
-
다형성(Polymorphism)
5.6 다형성(Polymorphism)5.6.1 함수 오버라이딩(Function Overriding)파생 클래스에서 기본 클래스의 메서드를 재정의하는 것:#include #include class Shape {protected: std::string name; public: Shape(const std::string& n) : name(n) {} void display() const { std::cout 5.6.2 가상 함수(Virtual Functions)와 동적 바인딩가상 함수는 런타임에 적절한 함수 버전을 결정하는 다형성의 핵심입니다:#include #include #include class Shape {protected: std::string name..
2025.03.28 -
상속(Inheritance)
5.5 상속(Inheritance)5.5.1 상속의 기본 개념상속은 기존 클래스(기본 클래스/부모 클래스)의 특성을 새 클래스(파생 클래스/자식 클래스)가 물려받는 메커니즘입니다:#include #include // 기본 클래스class Person {protected: std::string name; int age; public: Person(const std::string& n, int a) : name(n), age(a) {} void introduce() const { std::cout 5.5.2 상속 접근 지정자상속 시 사용할 수 있는 세 가지 접근 지정자:public 상속: 기본 클래스의 public 멤버는 파생 클래스에서도 public, prot..
2025.03.28 -
객체 생성과 수명 주기
5.4 객체 생성과 수명 주기5.4.1 스택 객체 vs 힙 객체C++에서 객체는 스택(자동 메모리)이나 힙(동적 메모리)에 생성될 수 있습니다:#include class SimpleClass {public: SimpleClass() { std::cout 출력 결과:스택 객체 생성:객체 생성됨힙 객체 생성:객체 생성됨main 함수 마지막객체 소멸됨객체 소멸됨스택 객체 vs 힙 객체:스택 객체: 블록이 끝나면 자동으로 소멸 (RAII 원칙)힙 객체: 명시적으로 delete해야 소멸 (메모리 누수 위험)5.4.2 정적 멤버(Static Members)정적 멤버는 클래스의 모든 객체가 공유하는 멤버입니다:#include #include class Student {private: std::..
2025.03.28 -
생성자와 소멸자
5.3 생성자와 소멸자5.3.1 생성자(Constructor)생성자는 객체가 생성될 때 자동으로 호출되는 특별한 멤버 함수로, 객체를 초기화하는 역할을 합니다.기본 생성자(Default Constructor)class Time {private: int hour; int minute; int second; public: // 기본 생성자 Time() { hour = 0; minute = 0; second = 0; } void display() const { std::cout 매개변수가 있는 생성자(Parameterized Constructor)class Time {private: int hour; ..
2025.03.28 -
캡슐화와 접근 지정자
5.2 캡슐화와 접근 지정자5.2.1 캡슐화(Encapsulation)캡슐화는 데이터와 이를 처리하는 함수를 하나의 단위로 묶고, 외부에서의 접근을 제한하는 OOP의 핵심 원칙입니다. 이를 통해 데이터 무결성을 보호하고 구현 세부 사항을 숨길 수 있습니다.5.2.2 접근 지정자(Access Specifiers)C++에서는 세 가지 접근 지정자를 통해 캡슐화 수준을 제어합니다:public: 어디서든 접근 가능private: 해당 클래스 내부에서만 접근 가능protected: 해당 클래스와 파생 클래스에서 접근 가능#include #include class BankAccount {private: // 클래스 내부에서만 접근 가능한 데이터 std::string accountNumber; dou..
2025.03.28 -
객체 지향 프로그래밍
객체 지향 프로그래밍객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 C++의 핵심 패러다임 중 하나로, 데이터와 해당 데이터를 처리하는 함수를 논리적 단위인 '객체'로 묶어 프로그램을 구성하는 방식입니다. 이 챕터에서는 OOP의 기본 개념부터 고급 기능까지 상세히 다룹니다.5.1 클래스와 객체의 기본 개념5.1.1 클래스와 객체 소개클래스(Class): 객체의 설계도 역할을 하는 사용자 정의 데이터 타입 객체(Object): 클래스의 인스턴스(실체)#include #include // 클래스 정의class Person {public: // 멤버 변수 (데이터) std::string name; int age; // 멤버 함수 (메서드) ..
2025.03.27