객체지향 2

C++ 프로그래밍 - 클래스의 상속(Inheritance)과 다형성(polymorphism)

목차 상속 객체지향이 절차지향과 아주아주아주 다른 포인트 중 하나인 상속이다. 상속은 말 그대로 누군가에게 물려받는 것을 의미한다. 상속의 개념은 결국 공통점을 묶어서 한 번에 유지,보수하기 편하게 만들기 위함이기 때문에 경제적인 요인과 편의성을 고려한 개념이라고 생각하면 될 것 같다. 클래스에서의 상속은 자신의 멤버 변수와 멤버 함수를 물려주는 것을 의미한다. 이 때, 상속 해주는 클래스는 상위, 기초(base), 슈퍼(super), 부모(parent) 클래스라고 부르고, 상속 받는 클래스는 하위, 유도(derived), 서브(sub), 자식(child) 클래스라고 부른다. 상속의 특징은, 부모의 모든 멤버들을 자식이 물려받는다는 것이다. 또다른 특징은, 부모의 모든 멤버를 자식이 물려받되 온전히 자식..

C언어 2021.05.06

C++ 프로그래밍 - 표준 입출력, 이름공간(namespace), 인라인 함수(inline function), 함수 오버로딩(function overloading)

C의 진화 절차지향 언어인 C언어는 직관적이고 편리했다. C언어는 함수 기반으로 작동하기 때문에, 필요할 때마다 함수를 작성하고 가져다 쓰기만 하면 되어서 쉽고 빠르게 작성하는 것이 가능했다. 하지만 소프트웨어가 발달함에 따라서 거대한 프로젝트들이 등장하여, 빠르게 새로운 코드를 작성하기보다 기존 코드들을 유지, 보수하는 일이 중요해졌고, 전체적인 코드의 이식성과 유동성이 중요하게 되었다. 예를 들어, 동일한 프로젝트에서 여러 사람이 동시에 개발할 때, 변수나 함수 이름이 겹치는 경우에 이름 재정의 오류가 발생하면서 프로그램 전반에 걸쳐서 이름을 수정하는 등의 문제가 발생했다. 이러한 변화에 따라 C언어도 변화가 필요했다. 사실 잘 생각해보면 C언어를 조금 더 넓은 세상으로 확대시켰다고 생각할 수 있다...

C언어 2021.05.04