본문 바로가기
IT/c++

C++ Static: 정적 멤버 변수와 정적 멤버 함수

by 뉴코딩맨 2023. 8. 3.
C++에서 "static" 키워드는 클래스의 멤버 변수와 멤버 함수에 사용되며, 특정한 속성을 가지도록 합니다. C++에서의 "static" 키워드에 대해 알아보고, 정적 멤버 변수와 정적 멤버 함수의 사용 방법과 특징을 설명하겠습니다.
 
 

1. Static 키워드란?

"Static" 키워드는 클래스의 멤버 변수와 멤버 함수에 사용되며, 특정한 속성을 부여합니다. static 키워드가 붙은 멤버는 클래스의 모든 객체들이 공유하게 됩니다.
 

2. 정적 멤버 변수

정적 멤버 변수는 클래스의 모든 객체들이 공유하는 변수로서, 클래스의 모든 객체가 하나의 변수를 공유합니다. 정적 멤버 변수는 클래스의 모든 객체가 공통적으로 사용해야 하는 값을 저장하는데 유용합니다.
 

3. 정적 멤버 함수

정적 멤버 함수는 static 키워드로 선언되며, 해당 클래스의 객체가 아니라 클래스 자체에 속하는 함수입니다. 따라서 정적 멤버 함수는 클래스의 정적 멤버 변수만 사용할 수 있으며, 일반 멤버 변수나 멤버 함수에는 접근할 수 없습니다.
 

4. 정적 멤버 변수와 정적 멤버 함수의 활용 예제

 

 

#include <iostream>
using namespace std;

class MyClass {
public:
    static int staticVar;
    int nonStaticVar;

    static void staticFunction() {
        cout << "This is a static function." << endl;
    }

    void nonStaticFunction() {
        cout << "This is a non-static function." << endl;
    }
};

int MyClass::staticVar = 10;

int main() {
    MyClass obj1, obj2;
    obj1.staticFunction(); // 정적 멤버 함수 호출
    obj1.nonStaticFunction(); // 일반 멤버 함수 호출

    cout << "Static variable: " << obj1.staticVar << endl; // 모든 객체가 공유하는 변수
    cout << "Non-static variable: " << obj1.nonStaticVar << endl; // 객체별로 다른 변수

    return 0;
}

 

5. Static의 장점과 주의사항

Static 멤버는 클래스의 모든 객체가 공유하는 값이므로, 메모리 사용 측면에서 효율적입니다. 하지만 적절하지 않은 사용은 객체 간의 의존성을 높일 수 있으므로 신중하게 사용해야 합니다.
 

6. 정리

이 글에서는 C++의 "static" 키워드를 사용하여 정적 멤버 변수와 정적 멤버 함수를 정의하는 방법에 대해 알아보았습니다. 정적 멤버는 클래스와 객체 간의 상호작용을 유연하게 조절하는 데 유용하게 사용될 수 있습니다.

 

 

C++ Friend: 클래스 간 우정 맺기

C++에서는 클래스 간에 특별한 관계를 형성할 수 있도록 "friend" 키워드를 제공합니다. 이 키워드를 사용하면 클래스의 멤버 함수가 다른 클래스의 private 멤버에 접근할 수 있게 됩니다. C++의 "frien

newcodingman.tistory.com

 

댓글