일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Android
- compare
- Overloading
- digitalRead
- Pointer
- public
- flutter
- SERIAL
- inheritance
- Read
- Encapusulation
- Barcode
- length
- Binary
- UNO
- Unity
- preprocessing
- Class
- parameter
- memory
- aduino
- atmega328
- mfc
- Contour
- stream
- sensor
- java
- APP
- wpf
- file access
- Today
- Total
폴크(FOLC)
C++ 클래스 본문
# 함수와 변수를 포함한 확장된 구조체 형태 ( 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;
}
'교육 관련 > 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 |