반응형
클래스 (Class)
- 여러 자료형의 변수와 함수를 묶는 사용자 정의 자료형이다.
- 사물의 특성과 행동을 소프트웨어적으로 모델링하여 데이터화한다.
- 구조체와는 다르게 접근제어 지시자를 선언하지 않을시 private로 선언된다.
#include <iostream>
using namespace std;
struct Struct
{
int i;
};
class Class
{
int i;
};
void main()
{
Struct s;
s.i = 0;
Class c;
c.i = 0; //에러가 발생한다.
}
접근제어 지시자
- C++에서의 접근제어 지시자는 세가지가 존재한다.
- private : 클래스 내에서만 접근허용
- public : 어디서든 접근허용
- protected : 클래스 안이거나, 상속관계에 있을때 접근허용
클래스 (Class) / 객체 (Object) / 인스턴스 (Instance)
- Class : 객체를 설계할 때 필요한 설계도
class TempClass
{
private:
int n;
public:
TempClass(int n)
{
this->n = n;
};
int GetNum()
{
return n;
};
};
- Object : Class가 만들어진 결과물
void main()
{
TempClass tmpClass;
}
- Instance : 만들어진 Object에 개별적인 정보를 부여하여 만들어진 사용 가능한 상태의 정보.
void main()
{
TempClass tempClass(10);
}
※ 좀 더 정확히는 메모리상에 구현된 객체를 인스턴스라고 한다. (객체가 인스턴스를 포함한다.)
※ 위와 같은 상태에서는 tmpClass가 객체이고, (10)이 인스턴스가 된다.
※ 즉, 객체는 클래스 타입으로 선언되었을 때를 의미하고, 인스턴스는 인자를 받아 메모리에 할당되어 실제 사용 가능한 상태를 말한다.
반응형
'Stack > C++' 카테고리의 다른 글
C++ 파일 입출력 ofstream, ifstream (0) | 2021.10.16 |
---|---|
C++ 생성자, 복사생성자, 소멸자 (+ const) (0) | 2021.10.15 |
C++ 동적할당 new, delete (0) | 2021.10.13 |
C++ 참조자(Reference) (0) | 2021.09.29 |
C++ 객체지향 (0) | 2021.09.28 |