반응형

 

클래스 (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

+ Recent posts