생성자 소멸자
- 생성자를 이용하여 객체를 생성함과 동시에 멤버 변수를 초기화 할 수 있다. 생성자는 특별한 메소드로 클래스 이름과 동일한 이름으로 구현된다.
- 생성자를 따로 구현하지 않는다면 처음 객체가 생성될 때 멤버 변수는 NULL 로 초기화 된다
- 소멸자는 객체를 더이상 사용하지 않을 때 객체를 제거하기 위해 호출되는 함수이다. 객체의 메모리 반환을 위해 사용한다. 클래스 이름 앞에 ~가 붙은 형태로 사용된다.
virtual
- 선언만 있고 정의가 없는 것 = 순수 가상함수
- 가상함수는 파생클래서 에서 재정의 할 적으로 기대하는 멤버 함수 이다
- 상속
- 오버라이딩으로 재정의 된다
추상클래스 / 인터페이스
- 추상클래스
- 순수 가상 함수를 1개 이상 가지고 있는 클래스
- 인스턴스를 만들 수 없다
- 반드시 자식 클래스를 통해서 인스턴스를 생성 할 수 있다
- 인터페이스
- 인터페이스는 멤버 필드나 구체적으로 구현한 메서드를 갖지 않고 특정 기능을 약속한 메서드만 갖습니다.
- 모든 멤버는 사용하는 개발자와의 약속으로 모든 멤버를 public으로 접근 지정합니다.
다형성
- overriding 과 overloading
- 오버로딩은 함수명이 같은 함수를 중복 정의 하는 것이다. 파라미터 개수, 파라미터의 자료형에 따라 여러개의 같은 이름
- 오버라이딩은 상속 관계에서 함수 재정의할 때 사용한다. 상속받았을 때 부모 클래스의 함수를 사용하지 않고 다른 기능을 실행할 때
\n과 endl의 차이
- \n과 endl 모두 출력할 때 개행(줄 띄움)을 위해 사용한다. 둘의 차이는 endl은 출력 버퍼를 비워주는 과정(flush)이 들어가 있어서 \n보다 느리다.
malloc과 new의 차이는