728x90 반응형 컴퓨터공부17 [C언어 21] C언어로 객체지향 프로그래밍 흉내내기 C언어로 객체지향 프로그래밍 흉내내기C 언어는 객체지향 언어(OOP)를 지원하지 않는 절차적 언어입니다. 그러나 구조체와 함수 포인터를 조합하거나 특정 설계 패턴을 사용하여 객체지향의 핵심 개념을 구현할 수 있습니다. 이번 글에서는 C 언어로 클래스, 상속, 다형성과 같은 객체지향 특징을 흉내 내는 방법을 설명합니다. 1. C에서 클래스 흉내내기: 구조체와 함수의 조합클래스의 중요한 특징은 **데이터(멤버 변수)**와 **행동(멤버 함수)**를 묶어서 하나의 단위로 관리하는 것입니다. C에서는 다음과 같은 방식으로 이를 흉내낼 수 있습니다.1.1. 구조체를 사용하여 데이터 관리구조체는 클래스의 멤버 변수와 유사한 데이터 구조를 정의합니다.예제:#include // 구조체 정의typedef struct {.. 2024. 12. 29. [C언어 20] Declarations 선언문 Declarations 선언문C 언어의 선언문은 변수, 함수, 포인터, 배열 등의 사용을 정의하는 중요한 요소입니다. 올바른 선언문 작성은 프로그램의 가독성과 안정성을 높입니다. 이 챕터에서는 선언문의 구조와 다양한 유형의 선언을 심도 있게 다룹니다. 기존에 자주 사용하던 선언 형식부터 다소 생소한(?) 선언문까지 짚고 가볼까합니다. 다음 포스트에는 C언어로 객체지향을 흉내내는 방법에 대해 게시하겠습니다.1. Basics of Declarations / 선언문의 기본구조: 선언문은 데이터 타입과 변수 이름으로 구성됩니다.형식: 예: int number;예제: 기본 변수 선언#include int main() { int number = 10; // 정수형 변수 선언 float pi = 3.1.. 2024. 12. 28. [알고리즘] 단순 반복을 넘어서: 절차적 사고에 재귀를 더하다 도입부 (Introduction) : 재귀적 사고의 필요성 여태까지 컴퓨터정보공학을 전공하면서 알고리즘에 대한 공부가 취약했기 때문에 튼튼한 기초를 잡고자 알고리즘의 기초부터 공부하기 시작했습니다. 도중, 재귀 카테고리를 접하면서 프로그래밍을 대하는 사고방식 전환의 필요성을 느꼈습니다. 평소에 재귀의 개념을 완전 모르지 않고 간단한 팩토리얼 구현 등등 혹은 필요에 의해서 사용하는 수준에서 재귀의 대표격인 하노이의 탑 문제를 접했을 때 어디서 부터 설계를 해야할지 감이 안왔습니다. 이후 작동 원리를 이해한뒤에 코드를 보면 몇 줄이면 해결이 되는 모습을 보고, 코딩을 대하는 사고방식에 공백이 있다는 것을 인지하게 되었습니다. 소프트웨어 프로젝트를 다룰때나 평상시에 발생하는 문제에 대해 해결하는 방식이 절차적.. 2024. 12. 27. [C언어 18] File Input/Output (파일 입출력) 1. File Streams and FILE Pointers / 파일 스트림과 FILE 포인터개념: C 언어에서 파일 입출력은 FILE 포인터를 통해 관리됩니다. 파일 스트림은 데이터를 읽고 쓰기 위한 통로로 사용됩니다.주요 표준 스트림:stdin: 표준 입력 (키보드)stdout: 표준 출력 (콘솔)stderr: 표준 에러 출력 (에러 메시지)2. Opening and Closing Files / 파일 열기 및 닫기파일 열기 (fopen):형식: FILE *fopen(const char *filename, const char *mode);모드:"r": 읽기 모드"w": 쓰기 모드"a": 추가 모드"rb", "wb", "ab": 바이너리 모드파일 닫기 (fclose):형식: int fclose(FILE .. 2024. 12. 25. [자료구조 & 알고리즘] 그래프 + DFS 그래프에 대해 기초부터 차근차근 학습해보겠습니다. 그래프는 DFS와 BFS를 이해하는 데 필수적인 자료구조이므로, 기초 개념부터 간단한 구현까지 배우면 이후 탐색 알고리즘도 쉽게 이해할 수 있습니다. 1. 그래프란 무엇인가?정의: 그래프는 **노드(Node, 정점)**와 이들을 연결하는 **간선(Edge)**으로 이루어진 자료구조입니다.응용 분야: 네트워크(인터넷, 사회 연결망), 지리정보 시스템(지도), 경로 탐색(길 찾기), 관계 모델링(데이터 관계) 등.2. 그래프의 주요 용어정점(Vertex): 그래프를 이루는 점. 보통 숫자나 문자로 표현.간선(Edge): 정점 간의 연결선. 관계를 나타냄.방향성(Directionality):무방향 그래프: 간선에 방향이 없음 (A ↔ B).유방향 그래프: 간선.. 2024. 12. 20. 이전 1 2 3 다음 728x90 반응형