--- id: cpp-oop title: "C++ OOP" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["object-oriented programming", "DRY principle", "procedural vs OOP", "C++ 객체지향 프로그래밍"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.85 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["cpp", "programming-language", "w3schools", "oop"] raw_sources: ["https://www.w3schools.com/cpp/cpp_oop.asp"] applied_in: [] github_commit: "" --- # [[C++ OOP]] ## 🎯 한 줄 통찰 (One-line insight) The single-sentence distinction the source draws between procedural and object-oriented programming is organizational, not functional — procedural code is "organized around FUNCTIONS," OOP code is "organized around OBJECTS" that BUNDLE data and functions together — meaning the shift to OOP throughout this section of the tutorial isn't introducing new capabilities C++ lacked before, but reorganizing the SAME capabilities (variables, functions) around a different unit of grouping. [S1] ## 🧠 핵심 개념 (Core concepts) - **OOP (Object-Oriented Programming)** — organizing code around "objects" that hold both data and functions operating on that data. [S1] - **Class vs. object** — a class defines what an object should look like (a template); an object is created FROM a class and inherits its variables/functions. [S1] - **DRY principle** — "Don't Repeat Yourself"; move repeated code into functions or classes and reuse it. [S1] - **OOP advantages** — clearer program structure, easier maintenance/reuse/debugging, DRY-friendly, enables building full reusable applications faster. [S1] - **Procedural vs. OOP** — procedural organizes code around FUNCTIONS operating on data; OOP organizes code around OBJECTS that contain both data and functions together. [S1] ## 📖 세부 내용 (Details) - The Class → Objects mapping example: Fruit class → Apple/Banana/Mango objects; Car class → Volvo/Audi/Toyota objects. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) - 현재까지 발견된 모순 사항 없음 (No contradictions found in available sources). ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — 이 챕터의 클래스-객체 개념 개관이 다음 챕터(Classes and Objects)의 실전 코드로 바로 이어진다. [S1] ## 💻 코드 패턴 (Code patterns) None — this is a conceptual overview page with no standalone code example. ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.85 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[C++ Tutorial]] - **관련 개념:** [[CPP Functions Lambda]], [[CPP Classes]] - **참조 맥락:** OOP 섹션 첫 챕터 — 클래스와 객체(Classes) 챕터로 이어짐. ## 📚 출처 (Sources) - [S1] W3Schools — C++ OOP — https://www.w3schools.com/cpp/cpp_oop.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "C++ OOP" page (Astra wiki-curation, P-Reinforce v3.1 format).