Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 네임스페이스와 클래스의 차이점

<시간/>

이 섹션에서는 C++에서 네임스페이스와 클래스의 차이점을 살펴보겠습니다. 네임스페이스와 클래스는 서로 다른 두 가지 개념입니다. 클래스는 데이터 유형입니다. 클래스는 기본적으로 구조의 확장 버전입니다. 클래스는 데이터 멤버와 함수를 멤버로 포함할 수 있지만 네임스페이스는 변수와 함수를 하나로 그룹화하여 포함할 수 있습니다.

네임스페이스는 개체로 생성할 수 없습니다. 이 개념은 유사한 함수, 클래스, 변수 등을 구별하기 위한 추가 정보로 사용됩니다. 변수, 동일한 이름의 함수는 다른 네임스페이스에 배치될 수 있습니다.

이제 네임스페이스와 클래스의 몇 가지 중요한 차이점을 지적해 보겠습니다.

  • 네임스페이스는 충돌하지 않도록 식별자 그룹을 만드는 데 사용됩니다. 클래스를 사용하여 해당 클래스의 인스턴스를 만들어야 하지만 네임스페이스의 경우 그렇지 않습니다.

  • 네임스페이스의 경우 'using' 선언을 사용합니다. 클래스의 경우 클래스에서 파생되지 않는 한 불가능합니다.

  • 네임스페이스를 다시 열고 번역 단위 전체에 더 많은 요소를 추가할 수 있습니다. 이것은 클래스를 사용하여 수행할 수 없습니다.

namespace my_namespace {
   int function1();
}
namespace my_namespace {
   int function1();
}
  • 클래스의 경우 다음 코드는 적합하지 않습니다.

class my_class {
   int function1();
};
class my_class {
   int function1();
};
  • 이름 없는 네임스페이스를 사용할 수는 있지만 문제가 없는 클래스는 사용할 수 없습니다.

namespace{ //Legal
   int function1();
};
class { //create error
   int function1();
};