초보 코린이의 성장 일지

C++과 C#의 차이 본문

개인 공부

C++과 C#의 차이

코오린이 2023. 7. 18. 18:00

C++
- 객체 지향 프로그래밍 언어 (멀티패러다임 언어)
- 코드를 어셈블리어로 컴파일한다.
- 수동으로 관리하기 때문에 속도가 빠르다.
- 동적할당으로 만든 변수 및 &를 사용하여 변수 참조이 가능하고 참조 타입으로 분류된다.
- 수동적으로 New를 사용하여 동적할당, 사용이 끝나면 Delete로 수동적인 해제를 해줘야한다.
- 메모리 관리 수동 처리, 대신 메모리를 직접 관리해야 하므로 메모리 누수 문제가 발생할 수 있다.
- 수동적인 특성을 고려하여, 포인터를 사용할 수 있다.
- 게임, 서버에 사용이 적합하다. (언리얼)



C#
- 컴포넌트 지향 프로그래밍 언어
- 코드를 가상 머신(.NET)를 이용해 IL(Intermidiate Language)로 중간언어로 파일생성, CLR (공용 언어 런타임)로 컴파일
- 자동으로 관리되기 때문에 속도가 c++보다 느린 편이다.
- 클래스로 만든 객체들만 참조 타입으로 분류된다.
- 참조 타입으로 분류된 데이터만 동적할당이 가능하다. 사용이 끝나면 Garbage Collection이 대신 해제해준다.
- 가상 시스템에서 메모리 관리를 자동으로 처리해준다.
- 포인터를 사용할 수 없기 때문에 ref를 사용하여 주소의 값으로 접근을 하여 값을 전달한다.
- Windows 플랫폼에 초점이 맞춰져 있으며 웹, 데스크톱 개발, 모바일 애플리케이션에 사용이 적합하다 (유니티)

Comments