C++ 의 핵심은 바로 클래스입니다. 여러개의 데이터를 일괄적으로 관리하는 배열있고 서로 다른 데이터를 관리하는 구조체가 있습니다. C++ 에서는 여러개의 데이터 뿐 아니라 서로다른 데이터들과 여러개의 함수를 모아 관리하는 클래스라는 것이 있습니다. 포괄적으로 다양한 동작을 하나의 이름으로 묶어 놓은 것을 클래스라 부르고 이 클래스를 하나의 객체 단위로 관리가 됩니다. 그리고 이런 객체들이 모여 하나의 프로그램을 완성이 됩니다. 쉽게 말하면, 자동차 바퀴 객체가 있다고 치면 바퀴는 타이어, 휠, 나서 등 여러개 부품들로 구성 됩니다. 이런 부품들이 모여 하나의 자동차 바퀴(객체) 가 됩니다. 그리고 이런 객체들 핸들, 의자, 바퀴, 엔진, 몸체 등 각각의 객체들을 모아 하나의 자동차(프로그램)을 완성한다고 생각하시면 됩니다. 여기서, 객체를 쓰는 이유는 바퀴(프로그램동작)을 하나의 객체로 만들어 놓으면 해당 바퀴는 다양한 자동차에 이식할 수 있습니다. 또는 자동차에 현재 바퀴가 아닌 다른 다양한 바퀴로 교체 할 수도 있습니다. 이렇게 객체 단위로 캡슐화 하여 분리하면 프로그램 상에서 수정 및 재사용이 쉽기 때문에 클래스를 알아 두시면 아주 유용하게 사용 할 수 있을 거에요. 그러면 클래스에 대해서 이제 알아보도록 하죠.
클래스는 기억장소 및 함수들을 하나로 묶어 놓을 것을 말합니다. 클래스 안에 멤버변수와 멤버 함수로 구성되어 있습니다.
class 클래스명{
접근지정자:
자료형1 변수1;
자료형2 변수2; //멤버변수
접근지정자:
함수1(변수1); //멤버함수
함수2(변수2);
}
대충 이런 구조로 이루어 졌습니다. 기본 형태는 멤버변수, 멤버함수로 이루어졌습니다.
여기서 접근 지정자는 멤버변수나 멤버함수의 접근 할 수 있는 권한을 지정해 주는데 다음과 같습니다.
접근 지정자는 실제 코딩 연습을 해야 이해가 빠릅니다. 지금은 그냥 멤버변수와 멤버 함수를 public로 해서 실습하시기 바래요.
그리고 클래스는 구조체에서 사용했던 방식으로 클래스를 여러개의 객체 변수로 선언할 수 있습니다.
class 클래스명 객체변수;
이런 식으로요.
예)
class AAA{
public:
int a=10; //멤버변수
public:
void output(){ //멤버함수
cout<<a<<" 입니다."<<endl;
}
};
위와 같이 구성되고 아래와 같이 클래스 변수를 선언합니다.
class AAA op1;
cin>>op1.a;
op1.output();
이렇게 클래스 객체 변수 op1를 선언하고 멤버변수나 멤버함수가 public(공용)이니깐 op1에 접근자 콤마(.) 접근 할 수 있습니다. 하나의 값을 입력 받아 클래스 멤버변수에 저장하고 output()함수를 호출하여 결과를 출력하는 간단한 예제입니다. 어떤 느낌인지 아시겠지요.
[결과]
두가지 입력 형태로 수를 입력하여 그 수를 더한 값을 출력 하는 예제를 실습 해보도록 하죠.
[전체소스]
#include
using namespace std;
class AAA{
public:
int a;
public:
int sum(int b){
return a+b;
}
};
int main(int argc, char** argv) {
class AAA op1;
cin>>op1.a;
cout<<op1.sum(20)<<endl;
return 0;
}
첫번째 입력은 cin 명령어로 콘솔창에서 입력을 받아 op1.a변수에 값을 저장합니다.
cin>>op1.a;
두번째 입력은 이렇게 함수에 특정 정수를 인자로 던져 줄 수 있다.
op1.sum(20);
[결과]
클래스의 경우는 처음에 public으로 접근지정자를 만들어 놓고 다양한 표현을 해보셔야 실력이 늘어 납니다. 나중에 이 접근지정자가 상속 클래스로 넘어가면 복잡해 질 수 있습니다. 그리고 클래스에 대해 알아야 할 것이 좀 있는데 차츰 다루기로 하고 우선 이정도만 오늘 이해 하시면 됩니다.