>  기사  >  백엔드 개발  >  C++ 정적 함수와 전역 함수의 차이점은 무엇입니까?

C++ 정적 함수와 전역 함수의 차이점은 무엇입니까?

WBOY
WBOY원래의
2024-04-17 08:54:011149검색

정적 함수는 클래스 인스턴스 없이 클래스 내에서만 표시되며 도구 클래스 메서드에 사용되는 반면, 전역 함수는 클래스나 인스턴스 없이 전체 프로그램 내에서 표시되며 독립적인 함수에 사용됩니다.

C++ 静态函数与全局函数有什么区别?

C++에서 정적 함수와 전역 함수의 차이점

소개
C++에서 정적 함수와 전역 함수는 함수와 범위가 다른 두 가지 함수 유형입니다. 명확하고 유지 관리가 가능한 코드를 작성하려면 이들 간의 차이점을 이해하는 것이 중요합니다.

정적 함수
정적 함수는 클래스의 비정적 멤버 데이터에 액세스할 수 없다는 점을 제외하면 일반 멤버 함수와 유사합니다. 일반적으로 클래스 상태에 대한 액세스가 필요하지 않은 유틸리티 클래스 메서드를 구현하는 데 사용됩니다.

선언 및 정의

class MyClass {
public:
    static int add(int a, int b) { return a + b; }
};

범위 및 호출 가능성
정적 함수는 클래스 범위 내에서만 표시됩니다. 즉, 클래스의 인스턴스를 만들지 않고도 클래스 이름으로 직접 호출할 수 있습니다.

int result = MyClass::add(10, 20); // 输出 30

전역 함수
전역 함수는 어떤 클래스에도 속하지 않습니다. 이는 프로그램 범위 전체에서 볼 수 있습니다. 이는 I/O 작업이나 수학 작업과 같은 클래스 독립적 기능을 정의하는 데 사용됩니다.

선언 및 정의

int add(int a, int b) { return a + b; }

범위 및 호출 가능성
전역 함수는 프로그램의 어느 곳에서나 액세스하고 호출할 수 있습니다.

int result = add(10, 20); // 输出 30

차이표

Features 정적 함수 전역 함수
가시성 클래스에만 제한됨 프로그램 범위
접근성 수업이 필요하지 않습니다. 인스턴스 클래스나 인스턴스가 필요 없음
범위 클래스 내 전체 프로그램
목적 도구 클래스 방법 독립적인 기능

실용적 사례

예 1 : 정적 함수
원의 면적을 계산하는 정적 calculateArea 함수가 포함된 Math 클래스를 만듭니다. Math 类,其中包含一个静态 calculateArea 函数,该函数计算圆的面积。

class Math {
public:
    static double calculateArea(double radius) { return (3.14 * radius * radius); }
};

调用:

double area = Math::calculateArea(5); // 输出 78.5

示例 2:全局函数
定义一个 displayMessage

void displayMessage(const string& message) {
  cout << message << endl;
}

Call:

displayMessage("Hello world!"); // 输出 "Hello world!"

예 2: 전역 함수 전달된 메시지를 인쇄하는 displayMessage 전역 함수를 정의하세요.
rrreee

🎜전화: 🎜🎜rrreee🎜🎜결론🎜🎜정적 함수와 전역 함수의 차이점을 이해하는 것은 명확하고 유지 관리가 가능한 C++ 코드를 작성하는 데 중요합니다. 정적 함수는 클래스 내의 유틸리티 클래스 메서드에 사용되는 반면, 전역 함수는 프로그램 범위 내에서 사용 가능한 독립적인 기능에 사용됩니다. 🎜

위 내용은 C++ 정적 함수와 전역 함수의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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