객체지향프로그래밍

    [C++] 객체지향 프로그래밍: static, explicit, mutable, default, delete...

    static 총 생성된 인스턴스의 수를 구하는 클래스가 있다고 하면? 어떻게 구현할 것인가? 대부분이 전역변수를 설정하여 구한다고 할 것이다. 전역변수의 경우 프로젝트의 크기가 커질수록 실수로 인해 겹쳐서 오류가 날 수 있어 사용하지 않는 편이 좋다. 따라서 전역변수 설정을 피하기 위해서 나온 클래스에만 종속되는 변수가 'static' 이다. 이 static 멤버 변수의 경우, 클래스의 모든 객체들이 '공유' 하는 변수로써 각 객체 별로 따로 존재하는 멤버 변수들과는 달리 모든 객체들이 '하나의' static 멤버 변수를 사용하게 된다. static 멤버 변수의 경우, 멤버 변수들 처럼, 객체가 소멸될 때 소멸되는 것이 아닌, 프로그램이 종료될 때 소멸된다. static 멤버 변수는 아래와 같이 정의한다..

    [C++] 객체지향 프로그래밍: 추상화, 캡슐화, 상속성, 다형성, 동적바인딩...

    절차 지향 VS 객체 지향 절차 지향 절차 지향 모델링은 프로그램을 기능중심으로 바라보는 방식으로 "무엇을 어떤 절차로 할 것인가?"가 핵심이 된다. 즉, 어떤 기능을 어떤 순서로 처리하는가에 초점을 맞춘다. 객체 지향 객체 지향 모델링은 기능이 아닌 객체가 중심이 되며 "누가 어떤 일을 할 것인가?"가 핵심이 된다. 즉, 객체를 도출하고 각각의 역할을 정의해 나가는 것에 초점을 맞춘다. 절차 지향 VS 객체 지향 대형 프로그래밍의 경우, 많은 기능을 수반하기 때문에 절차 지향보다는 객체 지향이 적합 소형 프로그래밍의 경우, 작은 기능을 수반하기 때문에 객체 지향보다는 절차 지향이 적합 주의!: C++이 객체 지향 언어라고 해서 OOP가 목적이 되면 안된다. C++를 쓰기 위해 읽기 편하고, 이해하기 편..