C언어 C++ Programming

[C++언어] Public, Private 차이와 사용방법

끄적끄적아무거나 2021. 12. 21. 09:00
반응형

 

목차

     

     

     

     

     

     

    [C++언어] Public 정의 및 예제

     

    Public은 한글로는 접근 지정자라고하고 영어로는 Access Specifier라고 합니다. 즉, 접근하는 방법에 대한 정의를 내려주는 단어 입니다. Class(클래스)의 Atribute나 method에 접근(Access)하는 방식에 대한 설명입니다.

     

    여기서 Public은 Class 내부나 외부 어디든 접근이 가능 합니다. 

     

    #include <iostream>
    using namespace std;
    
    class Auto_maker {
        public:    
            string a_var;      
    };
    
    int main() {
        Auto_maker hyundai;
        hyundai.a_var = "sonata";  // Allowed (x is public)
        cout << hyundai.a_var << "\n";
        return 0;
    }

    5~6번 라인: class Auto_maker 내부에 public 을 선언

    12번 라인: 외부에서 함수 출력

     

    결과>>

    sonata

     

     

     

    [C++언어] Private 정의 및 예제

     

    Private도 Access Specifier 중 하나 입니다. Private은 의미 그대로 Class 외부에서는 사용이 불가능 하고 내부에서만 사용이 가능 합니다. 

     

    위 public과 동일한 예제 코드를 사용하고 5번 라인만 Private으로 변경하였습니다.

     

    #include <iostream>
    using namespace std;
    
    class Auto_maker {
        private:    
            string a_var;      
    };
    
    int main() {
        Auto_maker hyundai;
        hyundai.a_var = "sonata";  // Allowed (x is public)
        cout << hyundai.a_var << "\n";
        return 0;
    }

     

     

    결과>>

    Auto_maker::a_var': private 멤버('Auto_maker' 클래스에서 선언)에 액세스할 수 없습니다.

     

     

    Private을 사용하기 위해서는 아래 예제 처럼 Class내에서 사용해야 합니다.

     

    Private 사용 예제 코드>>

    #include <iostream>
    using namespace std;
    
    class class_ex {
        private:    
            int a_var = 5;
        public:
            int b_var = 3;
            void sum() {
                cout << a_var + b_var << "\n";
        }
    };
    
    int main() {
        class_ex ex;
        ex.b_var = 5;
        ex.sum();
        return 0;
    }

    5~6번 라인 : private을 정의함

    10번 라인 : private 선언 값을 내부에서 처리

     

     

    결과>>

    10

     

     

    반응형