다음을 통해 공유


정적 멤버 함수

정적 멤버 함수는 클래스 범위에 간주 됩니다.달리는 비정적 멤버 함수를 이러한 함수 암시적 더 있습니다 인수입니다. 따라서, 정적 데이터 멤버, 열거자, 또는 중첩된 형식을 직접 사용할 수 있습니다.정적 멤버 함수는 해당 클래스 형식의 개체를 사용 하지 않고 액세스할 수 있습니다.다음 예제를 고려해 보십시오.

예제

// 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.

참고 항목

참조

이 포인터