C++에서의 클래스와 캡슐화 개념

클래스와 캡슐화는 객체 지향 프로그래밍의 핵심 개념입니다. 클래스는 데이터와 기능을 하나의 단위로 묶은 구조로, 사용자는 외부 인터페이스만을 통해 상호작용합니다. 내부 구현은 은닉되어 있어야 하며, 이는 캡슐화의 핵심 원칙입니다. #include <iostream> using namespace std; struct Base { protected: int secret; public: virt ...

8월 24일 07:09에 게시됨

P9754 CSP-S 2023 "구조체" 문제 해설

1. 문제 핵심 프로그램이 실행되는 동안 새로운 구조체 타입을 동적으로 정의하고, 그 타입으로 전역 변수를 만든 뒤, 버 경로를 오프셋으로 변환하거나 반대로 주소를 멤버 경로로 환원해야 한다. 핵심은 구조체의 정렬(alignment)과 크기를 올바르게 계산하는 것이다. 2. 타입 정보 표현 모든 타입(기본형과 사용자 정의 구조체)은 이름, 크기, 정렬값, 멤버 목록을 갖 ...

8월 4일 19:43에 게시됨

구조체를 이용한 동적 단일 연결 리스트 구현

단일 연결 리스트 개념 단일 연결 리스트(Singly Linked List)는 노드(Node)라 불리는 요소들이 포인터로 연결된 선형 자료구조입니다. 각 노드는 두 가지 핵심 요소로 구성됩니다: 데이터 영역: 실제 값을 저장하는 공간 포인터 영역: 다음 노드의 주소를 저장하는 공간 리스트의 시작을 헤드 노드(Head)라 하며, 마지막 노드의 포인터는 NULL 값을 가집니다. 리스 ...

7월 12일 22:25에 게시됨

파일 입출력과 구조체 데이터 처리 실습

작업 1: 텍스트 파일을 이용한 도서 정보 관리 이 작업에서는 Book 구조체를 정의하고, 도서 목록을 텍스트 파일에 쓰고 다시 읽어오는 과정을 수행한다. 먼저 배열에 저장된 도서 정보를 fprintf()를 사용해 정형화된 형태로 data1.txt에 기록한다. #include <stdio.h> #include <stdlib.h> #define MAX_LEN 80 #define MAX_BOOKS 100 typedef struct { ...

6월 21일 22:15에 게시됨

C 함수에서 배열 반환을 위한 정적 캐싱 기법

제1장: C 언어 함수에서 배열 반환의 한계와 해결 전략 C 언어에서는 함수 내부에 선언된 배열을 직접 반환하는 것이 불가능하다는 제약이 존재합니다. 이는 스택 메모리의 수명 관리 구조 때문이며, 함수 실행 종료 시 해당 스택 프레임이 해제되면서 모든 지역 변수(배열 포함)도 함께 소멸하기 때문입니다. 함수에서 이러한 메모리 주소를 반환하면 유니티드 레이스 발 ...

5월 28일 08:25에 게시됨

파일 입출력과 구조체를 활용한 데이터 처리 실습

1. 파일 통계 분석 (task4) 이 프로그램은 특정 텍스트 파일을 읽어 줄 수와 공백이 아닌 문자 수를 계산합니다. fgetc() 함수로 파일의 문자를 하나씩 읽어 처리합니다. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <ctype.h> void count_file_stats(const char* filename) { FILE* file = fopen(filename, "r"); if (file == NUL ...

5월 27일 01:46에 게시됨