반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

폴크(FOLC)

C++ 클래스 본문

교육 관련/C++

C++ 클래스

folcjin 2022. 3. 27. 15:37
728x90
반응형

# 함수와 변수를 포함한 확장된 구조체 형태 ( C 언어의 구조체의 확장 개념 )
   > 사용자 정의 타입 ( class 키워드 이용 )
   > 객체 지향 개념의 중심 ( 상태와 행동 )
   > 추상화, 갭슐화, 은닉화, 상속성, 다형성 등의 특징을 갖음
   > 객체 : 사용자 정의 타입을 설계해 놓은 상태 ( 선언 하지 않은 상태 )
   > 인스턴스 : 사용자 정의 타입의 객체를 선언하여 메모리에 올려놓은 상태
      - 메모리에 독립된 공간에서 관리됨

# 기본 형태
class 객체 이름
{
접근 제어 지시자( private, protected, public) :
   변수 - int AAA;
   함수 원형 - int BBB(int CCC);

접근 제어 지시자( private, protected, public) :
   함수 원형 - void DDD(int EEE);
};   <- 세미콜론으로 닫아야 함.

# 접근 제어 지시자
   > private : 해당 객체 내에서만 접근 가능한 변수 / 함수
      - 기본값으로 자동 설정됨 ( 최 상위 위치에서 생략 가능 )
   > protected : 해당 객체를 상속한 하위(파생) 클래스에서만 접근 가능한 변수 / 함수
      - 파생 클래스에서는 public 처럼 접근 가능
      - friend class 에서 public 처럼 접근 가능
   > public : 모든 객체에서 접근 가능한 변수 / 함수
      - 구초제와 공용체는 기본값으로 자동 설정됨

# 멤버 작성
   > 멤버 변수 : 클래스 선언 안에서 정의
   > 멤버 함수 : 클래스 선언 안에서 정의
      - 인라인 함수로 동작하도록 자동 처리 됨 ( inline 키워드 생략 가능 )
   > 멤버 함수 : 클래스 선언 밖에서 정의
      - 범위 지정 연산자 :: 를 이용해서 해당 클래스를 명시
      - void 객체 이름::FunctionTEST(int param) {   함수 내용   }
      - 인라인 함수로 동작하도록 처리 할 수 있음 ( inline 키워드를 사용 )

# 객체 생성 및 접근
   > 일반 할당 ( stack ) 으로 생성 하면  . 도트 연산자로 접근
   > 동적 할당 ( memory ) 으로 생성하면 -> 화살표 연산자로 접근

# 예제 소스
# include <iostream>
class TEST_CLASS
{
   private: // 최 상위 위치에서 생략 가능
      int m_AAA;

   public:
      void TEST_CLASS(int value)
      {
         m_AAA = value;
      }
      int FuncTEST(int param)
      {
         return m_AAA + param;
      }
};

int main(void)
{
   TEST_CLASS TEST_CLASS1(1); // 일반 할당
   TEST_CLASS *pTEST_CLASS2 = TEST_CLASS(1); // 동적 할당

   int result1 = TEST_CLASS1.FuncTEST(2);
   int result2 = pTEST_CLASS->FuncTEST(2);

   delete pTEST_CLASS; // 동적할당 해제 ( 꼭 해야 함!!! )
   return  0;
}

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --

'교육 관련 > C++' 카테고리의 다른 글

C++ 기본/복사 생성자  (0) 2022.03.31
C++ 생성자 및 this 포인터  (0) 2022.03.29
C++ 함수 특징  (0) 2022.02.28
C++ 파일 연동  (0) 2022.02.25
C++ 사용자 정의 자료형  (0) 2022.02.25