2011-01-02 2 views
2

C# public 키워드 정확히은 C#의 internal 키워드와 동일합니까?C# 내부 == 공용 C++

내가 이해하는 한, C++의 public은 "컴파일 유닛 내 어디에서나 사용될 수 있습니다"를 의미합니다.

답변

9

아니요, 정확히 일치하지 않습니다. 우선, C++ "컴파일 유닛"은 .NET 어셈블리와 동일하지 않습니다.

다음으로 C++에는 "linkage"라는 추가 개념이 있습니다.이 개념은 컴파일 단위 외부에서 형식을 사용할 수 있는지 여부를 결정합니다. 동일한 헤더 파일이 다른 컴파일 단위에 포함되는지 여부도 표시 여부에 영향을줍니다.

5

C++에는 어셈블리 개념이 없습니다.
따라서 C++에는 C#의 publicinternal의 차이점이 없습니다.

C#의 internal 수정 자와 달리 C++의 public 구성원은 다른 프로젝트에서 사용할 수 있습니다.

+1

"C++의 공용 클래스"란 무엇입니까? C++은 네임 스페이스 범위의 유형에 액세스 한정자를 적용하지 않습니다. 게다가'dllexport'가 ODR 위반을 야기하는 경향이 있기 때문에 모듈 경계에서 순수 추상 클래스를 사용하는 것이 안전합니다. –

+0

죄송합니다. 결정된. 나는 C++에 익숙하지 않다. – SLaks

관련 문제