C# 대 C++: 차이점
C#과 C#의 주요 차이점 C++
- C++ C#은 고급 언어인 반면 기본 언어 C에 객체 지향 기능을 추가하는 저수준 프로그래밍 언어입니다.
- C++ C#은 ASP.NET의 JIT에 의해 해석되는 CLR(공용 언어 런타임)로 '컴파일'되는 반면, C#은 기계 코드로 컴파일됩니다.
- C++ C#은 구성 요소 지향 프로그래밍 언어로 간주되는 반면 객체 지향 언어입니다.
- In C++ 메모리를 수동으로 관리해야 하는 반면 C#은 메모리 관리를 자동으로 수행하는 가상 머신에서 실행됩니다.
- In C++ 개발은 특정 아키텍처를 따라야 하며 이식성이 있어야 하는 반면, C# 개발은 간단하고, 현대적이며, 범용적이고, 객체 지향적인 프로그래밍 언어여야 합니다.
C++?
C++ C 프로그래밍 언어의 특징과 Simula67(최초의 객체 지향 언어)의 특징을 모두 포함하는 컴퓨터 프로그래밍 언어입니다. C++ 클래스와 객체의 개념을 도입했습니다.
이는 높은 수준과 낮은 수준의 언어 기능을 캡슐화합니다. 따라서 중급 언어로 간주됩니다. 이전에는 C 언어의 모든 속성을 가지고 있었기 때문에 "C with class"라고 불렸습니다.
C#이란 무엇입니까?
C-샤프 에 의해 개발된 객체지향 프로그래밍 언어이다. Microsoft .NET 프레임워크에서 실행됩니다. 강력한 타이핑과 같은 기능을 갖추고 있습니다.ping명령형, 선언형, 객체 지향(클래스 기반) 및 컴포넌트 지향 프로그래밍을 지원합니다. 이 프레임워크는 다음 인물에 의해 개발되었습니다. Microsoft .NET 플랫폼 내에서.
"C 샤프"라는 이름은 음악 표기법에서 영감을 받았습니다. 여기서 '#' 기호는 작성된 음표의 음높이를 반음 높여야 함을 나타냅니다.
의 역사 C++
C++ 언어는 AT & T Bell Laboratories의 Bjarne Stroustrup이 개발했습니다. Stroustrup은 C의 강력한 지지자이자 Simula67의 추종자였습니다. 그는 두 언어의 장점을 결합하고자 했습니다. 그는 객체 지향 프로그래밍 기능을 지원하면서도 C의 기능을 그대로 유지하는 언어를 만들고자 했습니다. 그 결과 C++.
C#의 역사
Anders Hejlsberg는 C# 언어 개발의 핵심 기여자입니다. 1999년에 그는 당시 "Cool"이라고 불렸던 새로운 언어를 개발하기 위해 팀을 구성했습니다. 이 프로젝트는 2000년 XNUMX월 .Net Developers Conference에서 승인 및 발표되었습니다. 이 언어는 나중에 C#으로 이름이 변경되었습니다.
원칙 C++ 개발
- 프로그램은 단순하고 객체지향적이며 이해하기 쉬워야 합니다.
- 개발은 강력하고 안전한 환경에서 수행되어야 합니다.
- Code 특정 아키텍처를 따라야 하며 이식성이 있어야 합니다.
- Code 쉽게 "해석 가능하고 역동적"이어야 합니다.
C# 개발 원칙
- 단순하고, 현대적이고, 범용적이며, 객체 지향적이어야 합니다. 프로그래밍 언어.
- 언어와 구현은 다음에 대한 지원을 제공해야 합니다. 소프트웨어 공학 원칙
- C#은 호스팅 시스템과 임베디드 시스템 모두를 위한 애플리케이션을 구축하는 데 이상적인 선택입니다.
이제 이 C#과 C++ 튜토리얼, C Sharp와 C Sharp의 주요 차이점을 이해해 봅시다. C++.
| 매개 변수 | C++ | C# |
|---|---|---|
| 언어 유형 | C++ 낮은 수준의 플랫폼 중립적 프로그래밍 언어입니다. | C#은 고급 언어입니다. |
| 컴파일 | C++ 기계어 코드로 컴파일 | C#은 ASP.NET의 JIT에 의해 해석되는 CLR(공용 언어 런타임)로 '컴파일'됩니다. |
| 메모리 관리 | In C++, 객체를 동적으로 할당하는 경우 메모리를 수동으로 관리해야 합니다. | C#은 메모리 관리를 자동으로 실행합니다. |
| 다중 상속 | C++ 다중 상속을 지원합니다 | C#은 다중 상속을 지원하지 않습니다. |
| 난이도 | C++ 더 복잡한 기능이 포함되어 있습니다. | C#에는 복잡한 기능이 없습니다. 계층 구조가 간단하고 이해하기 매우 쉽습니다. |
| 기본 액세스 지정자 | 공개 C++ 구조체의 경우 수업용 비공개 | C# .net에서는 비공개입니다. |
| 플랫폼 | C++ 모든 종류의 플랫폼에서 실행되는 언어입니다. 또한 Unix 및 Linux 시스템에서도 똑같이 인기가 있습니다. | C#은 표준화되었지만 Windows 외부에서 사용되는 경우는 거의 없습니다. |
| 독립형 애플리케이션 | C++ 독립형 애플리케이션을 만들 수 있습니다. | C#에서는 독립형 애플리케이션을 만들 수 없습니다. |
| 객체 지향 | C++ 완전한 객체 지향 언어는 아닙니다. | C#은 순수한 개체 지향 언어입니다. |
| 바운드 검사 | 배열의 바운드 검사를 지원하지 않습니다. | 배열의 바운드 검사를 지원합니다. |
| 쓰레기 수거 | C++ 가비지 수집을 지원하지 않습니다. | C#은 가비지 수집을 지원합니다. |
| 다중 상속 | C++ 다중 상속을 지원합니다. | C#은 다중 클래스 상속을 제공하지 않습니다. |
| Foreach 루프 | 이전 버전 C++ 각 루프를 지원하지 않습니다. (범위 기반 for 루프 인 C++ 이후 추가됨 C++ 11) | C#은 각 루프를 지원합니다. |
| 포인터 사용 | 프로그램의 어느 곳에서나 포인터를 사용할 수 있습니다. | 안전하지 않은 모드에서만 포인터를 사용할 수 있습니다. |
| 에 사용 | 게임에 널리 사용됩니다. | C# 프로그래밍을 사용하여 만들 수 있습니다. Windows, 모바일 및 콘솔 애플리케이션. |
| 바이너리 크기 | C++ 훨씬 더 가볍습니다. | C#에는 오버헤드가 많으므로 컴파일하기 전에 라이브러리를 포함해야 합니다. |
| 프로젝트 유형 | C++ 프로그래머는 일반적으로 하드웨어와 직접 작동하거나 다른 언어가 제공할 수 있는 것보다 더 나은 성능이 필요한 응용 프로그램에 중점을 둡니다. | C#은 최신 앱 개발에 사용됩니다. |
| 컴파일러 경고 | C++ 구문이 올바른 경우 거의 모든 작업을 수행할 수 있습니다. 따라서 유연한 언어이지만 OS를 실행하는 데 심각한 피해를 줄 수 있습니다. | C#은 강력하게 보호됩니다. 실수로 손상을 일으킬 수 있는 코드를 작성한 경우 컴파일러는 오류와 경고를 표시합니다. |
| 컴파일 결과 | 컴파일 후, C++ 코드가 기계어 코드로 변환됩니다. | 컴파일 후 C# 코드는 중간 언어 코드로 변환됩니다. |
| Switch 문 | In C++ Switch 문, 테스트 변수는 문자열이 될 수 없습니다. | C# switch 문에서는 문자열일 수도 있고 아닐 수도 있습니다. |

