본문 바로가기
{Programing}/C.C++

c/c++ 구조체 / 클래스 (2)

by 탱타로케이 2020. 1. 3.

클래스

 

구조체의 확장판이다.

멤버 변수를 포함해 멤버 함수까지 작성할 수 있다.

 

어떠한 물체를 

속성과 기능으로 나누어

속성은 멤버 변수로

기능은 멤버 함수로 나타낸다.

 

이를 클래스 라고 부른다.

 

클래스를 이용해 구체화 하면 

이를 오브젝트 = 객체 라고 부른다.

 

설계도 - 건물

빵틀    - 빵

 

요런 관계.

 

이런식으로 선언한다.

class square {
public:
	int topX, topY;
	int bottomX, bottomY;
private:
	int size;

public:
	square(){}
    	~square(){}
	int area() {
		return (topX - bottomX)*(topY - bottomY);
	}
};

멤버함수는 클래스 선언안에서 선언할 수 도 있고,

헤더와 cpp를 나누면 따로 선언도 가능하다.

 

멤버변수로의 접근은 구조체와 방법이 같고

 

접근제한자라는 속성에 따라 직접접근과 간접접근으로 나뉜다.

이 개념은 추후 상속과 캡슐화를 설명할때 자세히 설명하겠다.

 

생성자, 소멸자. 

생성자는 클래스로부터 객체가 생성될때 호출되는 기본 함수로.

따로 정의 하지 않더라도 호출되는 디폴트 함수가 존재한다.

기본적인 기능은 멤버변수를 초기화하기 위한 용도이며.

따로 명시하지 않더라도 무조건 호출되는 함수이다.

초기화하기 위한 멤버변수를 매개변수로 받는 생성자가

필요하면 정의하고 명시해서 호출하면 된다.

 

소멸자는 객체가 제거될때 호출되는 기본함수.

클래스에서 동적할당한 경우에 메모리 손실을 막기위해 해제해주어야만한다.

이런 기능을 담당하는 함수라고 보면 된다.

 

둘다 함수명은 클래스 명과 같고, 소멸자는 접두사로 ~ 가 붙는다.

'{Programing} > C.C++' 카테고리의 다른 글

c/c++ 배열, 동적할당  (0) 2020.01.06
c/c++ 구조체 / 클래스 (3)  (0) 2020.01.03
c/c++ 구조체 / 클래스 (1)  (0) 2020.01.02
c/c++함수  (0) 2020.01.02
c/c++ 조건문  (0) 2020.01.02

댓글