클래스 (객체지향)
업 캐스팅(Upcasting)과 다운캐스팅(Downcasting)
1. Upcasting과 Downcasting이란 무엇일까? Upcasting은 상속받은 자식 클래스를 부모클래스로 형변화 하는것을 말한다 Downcasting은 기본 클래스 포인터로 처리 할 수 있습니다. 이것은 업 캐스팅입니다. 간단하게 설명하면 이렇지만 단순히 다른 데이터 유형으로 변환한다고 생각하면 큰문제가 발생할수있다. 2. Upcasting 보시다시피 Manager(매니저)와 서기(Clerk)는 모두 직원(Employee)이고, 둘 다 사람(Person)이다. 이는 Manager 및 Clerk 클래스가 Person 클래스의 속성을 상속하는 Employee 클래스의 속성을 상속 함을 의미한다. 예를 들어, Manager 와 Clerk 모두 이름과 성으로 식별되고 급여가 있음을 지정할 필요가 ..
템플릿(Template) 개념정리
1. 템플릿(Template) 이란 무엇인가? 템플릿이란 데이터 타입을 정확히명시하지않고 클래스를 생성할때 데이터타입을 정하므로써 여러자료형마다 각각 오버로딩(overloading) 할필요없이 같은 역활을 하는 클래스, 메소드를 하나만 만들어서 다향한 데이터 타입을 사용하게하는 틀이다. 그렇기때문에 자료형대신 특수하게 약속된 키워드 (주로 한개일때는T 여러개일때는 T1,T2... 로 사용됨)을 사용한다. 템플릿은 크게 함수템플릿(method template)과 클래스 템플릿(class template)으로 나눠지는데 하는역활은 비슷하다. 2. 예제 템플릿을 사용하는곳은 많지만 대표적으로 사용하는 자료구조중 하나인 스택(stack)에서 사용하는 예제와 싱글톤패턴(singleton pattern)에서 사용하..
클래스 상속(inheritance) 이란?? (생성자,소멸자 접근 제어 지시자)
1. 상속(inheritance) 이란? 상속의 사전적의미 및 설명은 아래링크에서 가져왔습니다. http://tcpschool.com/cpp/cpp_inheritance_derivedClass 상속(inheritance)은 추상화, 캡슐화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나입니다. 상속은 사용자에게 높은 수준의 코드 재활용성을 제공하며, 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련합니다. C++에서 클래스 상속이란 기존에 정의되어 있는 클래스의 모든 멤버 변수와 멤버 함수를 물려받아, 새로운 클래스를 작성하는 것을 의미합니다. 이때 기존에 정의되어 있던 클래스를 기초 클래스(base class) 또는 부모 클래스(parent class), 상위 클래스(s..
Call by value / address / reference
이 포스트에서는 Call by value / Call by address / Call by reference 를 설명한다. 이 포스트에서는 값을 바꾸는 알고리즘을 예제로 한다. main 함수 int main() { int num1 = 10; int num2 = 20; cout