>백엔드 개발 >C++ >C++ 함수 선언에서 extern, static 및 mutable의 역할: 의미와 효과 이해

C++ 함수 선언에서 extern, static 및 mutable의 역할: 의미와 효과 이해

PHPz
PHPz원래의
2024-05-01 17:09:02344검색

키워드 extern의 역할은 다른 소스 파일의 함수를 참조합니다. static은 함수의 범위를 현재 소스 파일로 제한합니다. mutable은 const로 선언된 객체를 함수 내에서 수정할 수 있도록 합니다. C++ 함수 선언의 extern, static 및 mutable : 의미와 기능 이해

C++ 函数声明中 extern、static 和 mutable 的角色:理解它们的语义和作用C++에서 함수 선언의 extern, static 및 mutable 키워드는 서로 다른 의미와 함수를 갖습니다.

extern

extern 키워드는 함수가 다른 소스 파일에 정의되어 있음을 나타냅니다.

함수 정의를 포함하지 않고도 현재 소스 파일에서 함수를 참조할 수 있습니다.

프로그램을 구성하는 소스 파일이 여러 개 있을 때 유용합니다.
  • 예:
  • // header.h
    extern int add(int a, int b);
    
    // source1.cpp
    #include "header.h"
    int main() {
      int sum = add(1, 2);
      return 0;
    }
  • source1.cpp에서 extern 키워드를 사용하면 add 함수 정의를 포함하지 않고 header.h에 선언된 add 함수를 참조할 수 있습니다.

static

static 키워드는 함수의 범위를 제한하는 데 사용됩니다.

함수 선언에 static 키워드를 사용한다는 것은 함수가 이 소스 파일에서만 사용될 수 있고 다른 소스 파일에서는 접근할 수 없다는 것을 의미합니다.

보통 현재 소스 파일에서만 사용되는 보조 기능을 정의하는 데 사용됩니다.
  • 예:
  • // source1.cpp
    static int localFunction() {
      return 10;
    }
    
    int main() {
      int x = localFunction(); // 可以访问 localFunction
      return 0;
    }
  • 정적 키워드로 인해 localFunction은 source1.cpp에서만 액세스할 수 있고 다른 소스 파일에서는 액세스할 수 없습니다.

mutable

mutable 키워드는 함수 선언에 선언된 const 개체를 수정할 수 있도록 하는 데 사용됩니다.

함수 선언에서 const 개체를 선언한다는 것은 일반적으로 개체가 변경 불가능하다는 것을 의미합니다.

mutable 키워드를 사용하면 함수 내부의 const 객체를 수정할 수 있습니다.
  • 예:
  • // source1.cpp
    class MyClass {
    public:
      const int x = 10; // 不可变数据成员
      mutable int y = 20; // 可变数据成员
    };
    
    void modifyConst(MyClass& obj) {
      obj.y++; // 允许修改 y,因为 y 是 mutable
    }
  • 변경 가능한 키워드로 인해, ModifyConst 함수는 y가 const인 경우에도 MyClass 클래스의 y 데이터 멤버를 수정할 수 있습니다.

이러한 키워드의 의미와 효과를 이해하는 것은 강력하고 효율적인 C++ 프로그램을 작성하는 데 중요합니다.

위 내용은 C++ 함수 선언에서 extern, static 및 mutable의 역할: 의미와 효과 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.