알버트의 개발하는 블로그
C 언어 / C++ 언어 제20강 클래스(class)와 클래스 멤버 함수, 접근 권한 지정자 개념 익히기 본문
이번 시간에는 c언어에서 제공하는 기능 중에 하나인 클래스(class)에 대해서 한번 배워보겠습니다.
클래스란?
클래스는 구조체처럼 다양한 변수를 포함할 수 있습니다. 하지만 클래스는, 구조체와는 다르게 함수도 포함할 수 있습니다. 구조체는 단지 그 안에 자료형만을 포함하고 있었습니다. 하지만 클래스는 자료형을 포함할 뿐 아니라 그 안에 함수(메소드)까지 포함하고 있습니다.
클래스의 구조를 살펴보면,
class 클래스명 { [접근 권한 지정자:] //생략 가능, 생략시 private이 기본 접근 권한으로 사용된다. 클래스 멤버 변수 선언;...; [접근 권한 지정자:] [생성자 함수] 클래스 멤버 함수 선언; ...};
이와 같은 구조를 가지게 됩니다. 구조체랑 비교해보면
struct 구조체명 { 구조체 멤버 변수 선언; ...;}
접근 권한 지정자랑 생성자 함수, 클래스 멤버 함수가 새로 추가되었음을 알 수 있습니다.
여기서 접근 권한 지정자라는 것은 클래스에 누가 접근해서 자료를 처리할 수 있는지정해주는 것입니다.
private, protected, public 이렇게 3가지가 있습니다. (자바에서는 package가 추가됩니다.)
// private : 클래스 외부에서 내부의 멤버에 접근할 수 없다.
// protected : 현재 클래스와 현재 클래스를 상속받은 자식 클래스에서만 접근할 수 있다.
// public : 모든 위치에서 자유롭게 접근할 수 있다.
따로 접근권한 지정자를 선언해주지 않으면 private를 기본 지정자로 설정합니다.
그래서 외부에서는 이 자료를 처리할 수가 없어요. 만약 외부에서 아무나 이 변수들을 처리할 수 있게 하려면 public: 이라고 선언해주어야 합니다.
자 이제 한번 간단한 예제를 통해서 클래스를 익혀보겠습니다.
클래스 예제
대표사진 삭제
사진 설명을 입력하세요.
메인 함수 위에 hi라는 이름의 클래스를 먼저 생성해주었습니다.
이 클래스에는 변수는 int data가 들어있고 함수는 void say()를 넣어주었습니다.
그리고 메인 함수에서 이 c1이라는 이름으로 hi클래스의 객체를 생성해주었습니다.
객체라는 것은, 이 클래스라는 설계도를 이용해서 실제로 만들어진 건물이라고 보시면 됩니다.
메인 함수에서 쓸 수 있도록 두 가지의 방법으로 c1객체와 c2객체를 생성해주었습니다.
hi클래스의 두 객체를 만든 뒤에 say() 함수를 써보았습니다. 과연 두 객체의 say함수가 잘 실행될까요?
대표사진 삭제
사진 설명을 입력하세요.
이렇게 콘솔창이 실행되는 것을 알 수 있습니다. c1과 c2에 있는 두 함수가 정상적으로 실행된 것을 알 수 있습니다. 이처럼 클래스는 여러 가지 변수와 함수를 처리함에 있어서 아주 유용한 기능이기 때문에 반드시 잘 익혀야 합니다. 또한 이 클래스는 추후에 배우게 될 자바에서는 주구장창 봐야하는 아이입니다. 그래서 이 클래스에 대한 개념을 충분히 익히고 넘어가는 것을 추천드립니다.
읽어주셔서 감사합니다~
'프로그래밍 언어 > C & C++' 카테고리의 다른 글
C 언어 / C++ 언어 제22강 클래스의 static (정적) 멤버 변수 (0) | 2021.04.30 |
---|---|
C 언어 / C++ 언어 제21강 클래스(class)와 클래스 생성자(constructor) 함수 (0) | 2021.04.30 |
C 언어 / C++ 언어 제19강 메모리 동적 할당 이용하여 숫자 입력받고 평균 구하기 (0) | 2021.04.30 |
C 언어 / C++ 언어 제18강 구조체(struct)와 구조체 변수 (0) | 2021.04.30 |
C 언어 / C++ 언어 제17강 포인터 개념 익히기 (주소값 저장하는 변수 포인터) (0) | 2021.04.30 |