정적 함수는 클래스 인스턴스 없이 클래스 내에서만 표시되며 도구 클래스 메서드에 사용되는 반면, 전역 함수는 클래스나 인스턴스 없이 전체 프로그램 내에서 표시되며 독립적인 함수에 사용됩니다.
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
위 내용은 C++ 정적 함수와 전역 함수의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!