접근 제한자를 무력화하여 외부에서 클래스의 멤버 함수처럼 사용 할 수 있도록 하는 키워드이다. 프로그램을 작성하다보면 클래스 멤버 함수로는 적합하지 않지만, 클래스의 private와 protected 멤버에 접근해야 하는 특별한 경우, 이 함수를 외부 함수로 작성하고
일반적으로 사용하는 덧셈,뺄셈 등의 연산자는 기본 타입에서 사용이 가능하지만 함수나 클래스에서는 사용이 불가능하다. 이를 가능케 하기 위해 연산자 오버로딩이라는 것을 사용한다.이와 같이 + 연산자를 통해 정수도 더하고, 문자열도 합쳤다. 문자열의 경우에는 헤더파일 안
C++에서 부모 클래스를 기본 클래스(base class), 자식 클래스를 파생 클래스(derived class)라고 부른며, 다중 상속을 허용한다. 상속 시에는 연관성이 있는 클래스만 상속하는 것이 옳바르다상속은 아래와 코드와 같이 클래스 뒤에 콜론(:)과 기본 클래
다형성이란 객체 지향 프로그래밍에서 중요한 개념 중 하나이다. 동일한 이름의 함수나 메소드가 서로 다른 방식으로 동작하는 객체 지향 프로그래밍의 특징이다. 프로그래밍에서는 같은 이름의 메서드가 서로 다른 객체에 따라 다르게 동작할 수 있다는 개념을 포함한다.같은 이름의
dynamic cast에 대해 설명하기 앞서 Upcast와 Downcast에 대해 간략하게 설명하고자 한다.업 캐스트: Derived 클래스에서 Base 클래스로 변환하는 것다운 캐스트: Base 클래스에서 Derived 클래스로 변환하는 것자세한 내용은 해당 포스트에
순수 가상 함수는 함수의 코드가 없고 선언만 있는 가상 함수를 뜻하고, 멤버 함수의 원형 뒤에 =0;으로 선언하면 순수 가상 함수가 된다.순수 가상 함수를 사용하는 이유는 기본 클래스에서 작성된 가상 함수는 실행할 목적보다는 파생 클래스에서 오버라이딩 할 함수를 알려주
간단하게 추상 클래스에 대해 설명하자면 추상 클래스는 순수가상함수가 하나라도 있는 클래스를 말한다. 따라서 추상 클래스는 파생 클래스에 의해 오버라이딩 되어야 하는 함수이다.인터페이스는 구현이 없다. 즉, 인터페이스 클래스에는 가상 소멸자와 순수 가상함수 선언을 기본
다중 상속 다중 상속은 접근 지정과 함께 기본 클래스를 콤마(,)로 나열하면 된다. 다중 상속의 활용 파생 클래스는 다중 상속받은 기본 클래스들의 멤버들을 모두 호출할 수 있기 때문에, MusicPhone 클래스의 dial 함수는 아래와 같이 구현할 수 있다.
예외 처리 없이 프로그램이 실행되면 예외 상황에서 프로그램이 예기치 않게 종료 될 수 있는데, 이런 경우 예외 처리를 통해 프로그램이 안정적으로 실행될 수 있게 한다.예외 처리를 통해 예외가 발생한 위치와 이유를 쉽게 파악할 수 있게 도와주므로 디버깅을 용이하게 한다.
제네릭이란 자료형의 일반화로써 함수나 클래스를 일반화 시키고, 매개 변수 타입을 지정하여 틀에서 찍어 내듯이 함수나 클래스 코드를 생산하는 기법이다.제네릭 타입은 어떤 명칭이든 상관 없지만, 하나의 제네릭 타입만 선언할 경우 관례적으로 T를 사용한다.만약 두 개 이상의
STL은 C++의 표준 라이브러리 중 하나로, 템플릿으로 작성된 많은 제네릭 클래스와 함수 라이브러리이다.std이름 공간에 작성되어 있으며, 사용하고자 하는 클래스나 함수의 헤더파일을 포함하여 사용하면 된다.데이터를 저장하고 검색하기 위해 담아두는 자료 구조를 구현한