C++ template VS C# generic
·
C++
C++ 템플릿 vs C# 제네릭프로그래밍 언어에서 제네릭 프로그래밍(Generic Programming)은 코드를 보다 유연하고 재사용 가능하게 만드는 중요한 기법이다. C++와 C#은 각각의 방식으로 제네릭 프로그래밍을 지원하는데, C++에서는 템플릿(Templates)이라는 개념을, C#에서는 제네릭(Generics)이라는 개념을 사용한다. 이 두 가지 개념은 비슷해 보이지만, 그 구현 방식과 작동 원리에는 차이가 있다. 이번 글에서는 C++의 템플릿과 C#의 제네릭을 비교해 알아보겠다.  C++ template : C++ 템플릿은 함수나 클래스를 작성할 때, 특정 데이터 타입에 구애받지 않고다양한 타입을 사용할 수 있하여 코드 재사용성을 크게 높힌다.template T add(T a, T b) { ..
#include <memory> Smart Pointer
·
C++
포인터는 개체의 메모리 주소를 저장하는 변수이다. 힙에 새 개체를 할당하거나 함수에 다른 함수를 전달하거나 배열이나 데이터 구조의 요소를 반복할 때 사용한다.  정적 메모리 할당(Static Memory Allocation)은 프로그램의 생명 주기 동안 자동으로 관리되고프로그램 종료 시 운영 체제가 자동으로 메모리를 해제하지만new 연산자로 동적 메모리 할당(Dynamic Memory Allocation)된 메모리는delete 연산자로 해제하지 않으면 해당 메모리를 계속 사용하고 있다고 인지하여메모리 누수(Memory Leak)가 발생하게 된다. 메모리 구조낮은 주소 (Low memory) 0x00000000  코드 영역실행할 프로그램의 코드 데이터 영역전역 변수 정적 변수낮은 주소에서높은 주소로 확장 ..
Struct vs Class
·
C++
C++과 C#에서 Struct와 Class가 무슨 차이가 있는지그리고 class를 struct로 변경할 경우 어떤 문제가 발생 할 수 있는지 알아보도록 한다.C++의 Struct와 Class의 차이C++에서 struct와 class는 비슷하지만 기본 접근 지정자와 상속의 차이가 있다.  기본 접근 지정자기본 상속 지정자StructpublicpublicClassprivateprivate 아래와 같이 구조체와 클래스를 만들었을 때 둘다 명시적으로 접근 지정자를 써주지 않는다면struct는 open-minded이고 class는 shy-guy다. #includeusing namespace std; struct MyStruct { string parent = "Struct!"; void WhoIAm()..
SOLID - OOP 설계의 원칙
·
C++
객체 지향 프로그래밍 (또는 개체 지향 프로그래밍이라고도 한다,Object Oriented Programming인데 개체가 더 와닫는 말 같다.. )  객체 지향 프로그래밍을 설계할 때 따라야할 원칙들이 있다. 각 원칙의 한 글자씩 따서 SOLID라 한다.  1. Single Responsibility Principle (SRP) 단일 책임 원칙2. Open-Closed Principle (OCP) 개방-폐쇄 원칙3. Liskov Substitution Principle (LSP) 리스코프 치환 원칙4. Interface Segregation Principle (LSP) 인터페이스 분리 원칙5. Dependency Inversion Principle (DIP) 의존성 역전 원칙 OOP는 문제해결을 위해 ..
Rudolufoo
'C++' 카테고리의 글 목록