정적 멤버 함수
정적 멤버 함수는 클래스 범위에 간주 됩니다.달리는 비정적 멤버 함수를 이러한 함수 암시적 더 있습니다 이 인수입니다. 따라서, 정적 데이터 멤버, 열거자, 또는 중첩된 형식을 직접 사용할 수 있습니다.정적 멤버 함수는 해당 클래스 형식의 개체를 사용 하지 않고 액세스할 수 있습니다.다음 예제를 고려해 보십시오.
예제
// static_member_functions.cpp
#include <stdio.h>
class StaticTest
{
private:
static int x;
public:
static int count()
{
return x;
}
};
int StaticTest::x = 9;
int main()
{
printf_s("%d\n", StaticTest::count());
}
설명
앞의 코드는 클래스에서 StaticTest 정적 멤버 함수를 포함 count.이 함수는 전용 클래스 멤버의 값을 반환 하지만 반드시 형식 지정 된 개체와 연관 되지 않은 StaticTest.
정적 멤버 함수는 외부 링크를 사용 합니다.이러한 기능을가지고 있지 않은 이 포인터.결과적으로 다음과 같은 제한 사항이 이러한 함수에 적용 됩니다.
멤버 선택 연산자를 사용 하 여 비정적 클래스 멤버 데이터에는 액세스할 수 없습니다 (. or –>).
로 선언할 수 없습니다. 가상.
이러한 같은 동일한 인수 형식이 비정적 함수의 이름을 가질 수 없습니다.
[!참고]
멤버 선택 연산자의 왼쪽된에 있는 (. 또는 ->) 평가 선택 합니다 정적 멤버 함수가 아닙니다.그 부작용에 대 한 함수를 사용 하는 경우에 중요할 수 있습니다.예를 들어 식 SideEffects().CountOf() 함수를 호출 하지 않으면 SideEffects.