클래스는 "객체 지향 프로그래밍을 지원하기 위한 수단"이라 생각하면 됩니다.
클래스는 타입이 다른 변수의 집합뿐만 아니라, 함수까지 포함되고 public 이나 private 와 같은 엑세스 지정자도 추가 할 수 있습니다.
-
객체 : 각 변수을 객체로 취급
-
객체지향 프로그래밍 : 객체들의 관계를 설정하여, 부품을 조립하듯이 객체들을 조립하여 완성된 프로그램을 만드는 방식
-
속성 : 캡슐화, 은닉화, 상속성, 다형성
- public : 어디에서든지 접근 가능
- protected : 자기자신이나 상속받은 곳만 접근 가능
- private : 자기자신만 접근 가능
private:
int private_num;
public:
int public_num;
-
생성자 : 어떤 클래스를 이용해서 객체를 생성할떄 자동으로 호출되는 함수
-
소멸자 : 어떤 클래스를 이용해서 객체를 생성한 객체가 메모리에서 해제될때 자동으로 호출되는 함수
calc() {
cout << "calling calc()" << endl;
}
~calc() {
cout << "deleting calc()" << endl;
}
생성자에서도 오버로딩이 됩니다.
#include<iostream>
using namespace std;
class calc {
public:
calc() {
cout << "calling calc()" << endl;
}
calc(char* pname) {
strcpy_s(public_str, pname);
cout << "calling calc() " << "+ "<< public_str << endl;
}
~calc() {
cout << "deleting calc()" << endl;
}
public:
char public_str[32];
void display() {
cout << "printing " << public_str << endl;
}
};
int main() {
calc sample("hello world");
sample.display();
return 0;
}
- 과제-1 : 숫자 계산 클래스
calc()
를 만들어서 계산기만들기
요구 스펙 :
class calc //클래스 이름
add() //덧셈
sub() // 뺄셈
mul() // 곱셈
div() // 나눗셈