42서울에서 배우는 C++ 과제의 기준이 C++98 이므로, C++98의 OCCF에 대해여 정리. Orthodox Canonical Class Form (OCCF) 정식 클래스 형식 OCCF는 아래 네 가지의 형태를 명시적으로 정의하여 선언하는 것을 가리킨다. 기본 생성자 기본 소멸자 복사 생성자 할당 연산자 오버로딩 class A { A(); ~A(); A(const A &a); A &operator= (const A &a); }; 위와 같은 선언이 모두 들어간 것을 OCCF라고 부른다. 이것은 클래스 객체에 포인터 또는 참조 형식이 있을 때, 깊은 복사 또는 얕은 복사를 비롯하여, 여러가지 잠재적인 버그를 해결하는데에 도움을 준다. C++11에서는 위와 같은 C++98의 정식 클래스 형태에서 &&로 ..
런타임 다형성 (Runtime Polymorphism) Subtyping. (상속 등) 동적 지명 (Dynamic dispatch) 가상 함수. 컴파일 타임 다형성 (Compile-Time Polymorphism) 인자(매개변수) 다형성 (Parameteric polymorphism) 정적 지명 (Static dispatch) 컴파일 타임에 완전히 처리되는 다형성의 형태. C++의 템플릿 또는 다른 언어들의 제네릭. 함수 및 연산자 오버로딩도 해당. 임시 다형성 (Ad-hoc Polymorphism) 함수 및 연산자 오버로딩
‘const’ 키워드는 해당 객체가 변형될 수 없는 것을 가리킴. 객체가 const 포인터 또는 레퍼런스에 담겼을 경우, const 멤버 함수만 호출할 수 있음. 비 const 멤버 함수를 호출하려고 하면 컴파일 에러 발생. 그런데 C++에서는 const의 위치에 따라서 의미가 변할 수도 있음. const는 개발 하면서 넣을 곳에 그때 그때 최대한 빨리 넣어주어야 한다. 나중에 한꺼번에 const를 추가하는 것은 비용이 많이 들고, 어렵다. 인자 (Parameter) 인자로 무언가를 넘길 때, 세 가지 중 하나로 넘기게 됨. 포인터 레퍼런스 값 void pass_by_pointer( std::string *sptr ); void pass_by_reference( std::string &sref ); vo..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.