전체 글(131)
-
포인터의 기본
6.2 포인터의 기본6.2.1 포인터란?포인터는 메모리 주소를 저장하는 변수입니다. 즉, 다른 변수나 데이터를 "가리키는" 변수입니다.#include int main() { int num = 42; // 일반 변수 int* ptr = # // 포인터 변수 (num의 주소를 저장) std::cout 위 코드에서:int* ptr: 정수를 가리키는 포인터 변수 선언&num: num 변수의 주소를 반환 (주소 연산자)*ptr: ptr이 가리키는 주소에 있는 값을 반환 (역참조 연산자)6.2.2 포인터 선언과 초기화포인터는 타입* 변수명 형식으로 선언합니다:int* p1; // 정수 포인터 (권장 스타일)int *p2; // 정수 포인터 (C..
2025.03.28 -
포인터와 참조
포인터와 참조포인터와 참조는 C++에서 메모리를 직접 다루고 효율적인 프로그래밍을 가능하게 하는 강력한 도구입니다. 이 챕터에서는 포인터와 참조의 기본 개념부터 고급 활용법까지 상세히 살펴보겠습니다.6.1 메모리와 주소의 기본 개념6.1.1 컴퓨터 메모리의 이해컴퓨터 메모리는 데이터를 저장하는 일련의 바이트 모음입니다. 각 바이트는 고유한 주소를 가지고 있어 프로그램이 특정 메모리 위치에 접근할 수 있게 합니다.|------|------|------|------|------|------|------|------|| 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 6.1.2 변수와 메모리 주소변수를 선언하면 컴파일러는 해당 변수에 대한 메모리 공간을 할..
2025.03.28 -
챕터5. 실습 문제
5.7 실습 문제문제 1: 은행 계좌 시스템다양한 유형의 은행 계좌를 구현하는 클래스 계층 구조를 설계하세요:#include #include #include #include // 추상 기본 클래스class Account {protected: std::string accountNumber; std::string ownerName; double balance; public: Account(const std::string& number, const std::string& name, double initialBalance) : accountNumber(number), ownerName(name), balance(initialBalance) {} // 가상 소멸..
2025.03.28 -
다형성(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