🧱 `struct`에서 출발한 객체지향의 여정: 캡슐화와 접근 함수의 탄생🔹 1. C의 `struct`: 데이터 묶음, 하지만 무방비 상태C 언어의 `struct`는 데이터를 묶는 단순한 도구입니다.하지만 기능은 없습니다. 보호도 없습니다.struct Point { int x; int y;};int main() { struct Point p; p.x = -1000; // ❗ 문제: 음수 좌표 허용됨}❗ 문제점 요약 외부에서 값을 마음대로 바꿀 수 있다. 유효하지 않은 값도 필터링 불가. 데이터를 다루는 함수는 구조체 외부에서 정의해야 한다.🔹 2. C++의 `class`: 기능을 가진 구조체의 확장C++은 C의 struct를 확장하여 class라는 개념을 도입했습니다.데..
🔷 C++ 형변환 완전 정복✅ static_cast와 dynamic_cast 메모리 구조와 동작 원리1️⃣ 형변환(Type Casting) 개요프로그래밍에서 형변환(Type Casting) 이란 데이터를 한 타입에서 다른 타입으로 바꾸는 작업입니다.int n = 3;double pi = static_castdouble>(n);위 예제에서 int형 정수인 n의 값을 double형 실수로 변환합니다.형변환은 단순히 타입 이름만 바꾸는 것이 아니라,값의 표현 방식과 메모리 구조까지 바꾸는 작업입니다.2️⃣ C++ 형변환 종류 캐스팅 종류 특징 시점 static_cast 값 또는 포인터 타입 변환, 타입 검사 없음 ..
🔷 객체 잘림(Object Slicing)이란?✅ 1️⃣ 한 줄 정의객체 잘림(Object Slicing)이란, 자식 클래스 객체를 부모 클래스 타입으로 값 복사할 때, 자식 클래스 고유의 데이터나 기능이 잘려나가는 현상을 말합니다.🔷 2️⃣ 왜 잘리는가?자식 클래스는 부모 클래스의 기능을 상속받고, 그 위에 자기만의 고유 기능을 추가합니다.그래서 메모리 구조상 자식 클래스 객체는 부모보다 큽니다.하지만 자식 객체를 부모 타입 변수에 값 복사하면,복사되는 대상(부모 변수)의 크기만큼만 담을 수 있기 때문에자식 고유 부분은 잘려나가고 복사되지 않습니다.📦 객체 잘림의 메모리 시각화[ 자식 클래스 객체 (원본) ] ┌────────────────────────┐ │ 부모 클래스 부분 │ ──..
✅ C++에서의 다이아몬드 상속 문제란?✅ 1. 다이아몬드 상속 구조란? (개발자의 기대)다이아몬드 상속(diamond inheritance)은하나의 부모 클래스를 두 자식 클래스가 각각 상속받고,그 둘을 다시 하나의 클래스가 상속하는 구조를 말합니다.class A { /* ... */ };class B : public A { /* ... */ };class C : public A { /* ... */ };class D : public B, public C { /* ... */ };이 계층 구조는 다음과 같이 시각화할 수 있습니다: A / \ B C \ / D🧭 프로그래머의 기대프로그래머는 종종 A에 공통 기능이 들어 있고,B와 C는 각각 A의 기능을 물..
✅ 인터페이스 클래스란?🔷 정의인터페이스 클래스(interface class)란, 오직 순수 가상 함수만으로 구성된 추상 클래스입니다.C++에는 Java처럼 interface라는 키워드는 없지만,순수 가상 함수만 포함된 클래스를 인터페이스 클래스라고 부릅니다. 2025.05.04 - [프로그래밍/홍정모의 따라배우는 C++] - 추상 클래스 (Abstract Class)란 무엇인가? 추상 클래스 (Abstract Class)란 무엇인가?순수 가상함수의 배경지식2025.05.04 - [프로그래밍/홍정모의 따라배우는 C++] - 순수 가상 함수 (Pure Virtual Function)란? 순수 가상 함수 (Pure Virtual Function)란?✅ 순수 가상 함수 (Pure Virtual Funct..
순수 가상함수의 배경지식2025.05.04 - [프로그래밍/홍정모의 따라배우는 C++] - 순수 가상 함수 (Pure Virtual Function)란? 순수 가상 함수 (Pure Virtual Function)란?✅ 순수 가상 함수 (Pure Virtual Function) – 완전 정리🔷 1. 정의순수 가상 함수(pure virtual function)는 부모 클래스에서 선언만 하고 구현하지 않는 가상 함수입니다.이러한 함수를 가진 클래스는 추상eunjin123123.tistory.com ✅ 추상 클래스 (Abstract Class) – 완전 구조적 설명🔷 1. 정의추상 클래스(Abstract Class)는 하나 이상의 순수 가상 함수(pure virtual function)를 포함하는 클래스입니..
✅ 순수 가상 함수 (Pure Virtual Function) – 완전 정리🔷 1. 정의순수 가상 함수(pure virtual function)는 부모 클래스에서 선언만 하고 구현하지 않는 가상 함수입니다.이러한 함수를 가진 클래스는 추상 클래스(Abstract Class)가 되며, 이 추상 클래스는 직접 객체를 생성할 수 없습니다.🔷 2. 목적 공통된 인터페이스를 부모 클래스에 정의하여 자식 클래스에서 동일한 함수 시그니처를 강제합니다. 다형성(polymorphism) 구현을 가능하게 하며, 유지보수성과 확장성을 높여줍니다. 개발자의 실수를 방지하고 코드 구조의 일관성을 유지할 수 있습니다.🔷 3. 선언 방법virtual 반환형 함수이름(매개변수) = 0;✔️ 예시virtual void ma..
🔷 가상 소멸자(Virtual Destructor): 포인터 해석 범위의 한계와 객체 소멸의 불완전성✅ 1. 정의가상 소멸자(Virtual Destructor)란 C++에서 상속 관계의 클래스 구조에서, 기본 클래스 포인터를 통해 파생 클래스 객체를 삭제할 때, 파생 클래스의 소멸자가 반드시 먼저 호출되도록 보장하는 언어적 장치입니다.이는 기본 클래스의 소멸자 앞에 virtual 키워드를 명시함으로써, 실제 객체의 타입에 따라 런타임 시점에서 소멸자 호출 경로를 결정하게 하는 구조입니다.❓ 2. 필요성 – 왜 부모 포인터로 자식 객체를 삭제하면 문제가 생기는가?다음은 가장 흔한 구조의 C++ 코드입니다.#include using namespace std;class Animal {public: An..
- Total
- Today
- Yesterday
- 데이터분석
- 일문따
- 일본어문법무작정따라하기
- 사회심리학
- 오블완
- 통계학
- 강화학습
- 인지부조화
- 열혈프로그래밍
- 행동심리학
- 코딩테스트
- 백준
- 조건형성
- C
- 윤성우
- 뇌와행동의기초
- 일본어
- Python
- 파이썬
- 심리학
- 회계
- c++
- stl
- 보세사
- K-MOOC
- C/C++
- 류근관
- 통계
- 정보처리기사
- 티스토리챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |