Skip to content

Latest commit

 

History

History
94 lines (67 loc) · 1.99 KB

17.class.md

File metadata and controls

94 lines (67 loc) · 1.99 KB

클래스

클래스는 "객체 지향 프로그래밍을 지원하기 위한 수단"이라 생각하면 됩니다.

클래스는 타입이 다른 변수의 집합뿐만 아니라, 함수까지 포함되고 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() // 나눗셈