2016년 4월 7일 목요일

[Link] C++와 C# 비교

https://msdn.microsoft.com/ko-kr/library/aa287549(v=vs.71).aspx

위 링크 복붙

기능참조할 항목
상속: 클래스는 하나의 기본 클래스에서만 구현을 상속할 수 있습니다. 또한 클래스 또는 인터페이스는 여러 인터페이스를 구현할 수 있습니다.class
배열: C# 배열 선언 구문은 C++ 배열 선언 구문과 다릅니다. C#에서는 "[]" 토큰이 배열 형식 다음에 나타납니다.배열
bool 형식: bool 형식과 다른 형식(특히 int) 간에는 변환이 없습니다.bool
long 형식: C++에서는 long 데이터 형식이 32비트인 반면 C#에서는 64비트입니다.long
struct 형식: C#에서 클래스 및 구조체는 구문적으로 다릅니다.struct는 값 형식이지만 class는 참조 형식입니다.struct
switch 문: C++ switch 문과 달리 C#은 case 레이블에 대해 순차 조건 검사를 지원하지 않습니다.switch
delegate 형식: 대리자는 C++의 함수 포인터와 대략 비슷하나 형식 안전성과 보안을 제공합니다.delegate
파생 클래스에서 재정의된 기본 클래스 멤버 호출base
override 예제 참조
new 한정자를 사용하여 상속된 멤버를 명시적으로 숨깁니다.new
재정의 메서드 선언에는 override 키워드가 필요합니다.override
조건부 컴파일에 전처리기 지시문을 사용합니다. C#에서는 헤더 파일을 사용하지 않습니다.C# 전처리기 지시문
예외 처리: finally 문 사용try-finally
C# 연산자: C#은 is  typeof 같은 추가 연산자를 지원합니다. 또한 일부 논리 연산자의 다양한 기능이 도입되었습니다.& 연산자
extern 키워드 사용extern
static 키워드 사용static
C++의 초기화 목록을 대체하는 다른 기본 클래스 생성 방법virtual 예제 참조
C# 프로그램의 일반적 구조: 네임스페이스, 클래스, 구조체, 대리자 및 열거형C# 프로그램의 일반적인 구조
Main 메서드가 C++의 main 함수와 다르게 선언됩니다. 또한 각 언어의 명령줄 인수 사용법을 비교하십시오.Main
메서드 매개 변수: C#은 참조 형식으로 매개 변수를 전달하는 데 포인터 대신 사용하는 ref  out 매개 변수를 지원합니다.ref
out
C#에서 포인터를 사용할 수 있지만 unsafe 모드에서만 가능합니다.unsafe
C#에서는 연산자 오버로드가 다르게 수행됩니다.C# 연산자
문자열: C# 문자열은 C++ 문자열과 다릅니다.string
foreach 키워드를 사용하여 배열 및 컬렉션을 반복 처리할 수 있습니다.foreach, in
C#에는 전역 메서드 또는 변수가 없습니다. 메서드 및 변수는class 또는 struct와 같이 형식 선언 내에 포함되어야 합니다.C# 프로그램의 일반적인 구조
C#에는 헤더 파일 또는 #include 지시문이 없습니다. 형식 이름을 정식으로 지정하지 않고 다른 네임스페이스의 형식을 참조하려면using 지시문을 사용합니다.using
C#의 지역 변수는 초기화하지 않으면 사용할 수 없습니다.5. 변수
소멸자: C#에서는 가비지 수집기가 자동으로 소멸자를 호출하기 때문에 소멸자 호출 시기를 제어할 수 없습니다.소멸자
생성자: C++와 마찬가지로 C#에서는 클래스 생성자를 제공하지 않으면 기본 생성자가 자동으로 생성됩니다. 기본 생성자는 모든 필드를 기본값으로 초기화합니다.인스턴스 생성자
C#은 비트 필드를 지원하지 않습니다.C++ Bit Fields
C# 입출력 서비스 및 형식 지정은 .NET Framework의 런타임 라이브러리에 따라 수행됩니다.C# 언어 자습서
C#에서는 메서드 매개 변수가 기본값을 가질 수 없습니다. 동일한 효과를 얻고 싶다면 메서드 오버로드를 사용합니다.컴파일러 오류 CS0241
C#과 다른 프로그래밍 언어 간의 비교에 대해서는 언어 관련 정보 설명서를 참조하십시오.

댓글 없음:

댓글 쓰기