C++의 Canonical form(정규형)을 따르게 되면 복사 생성자와 복사 할당 연산자를 꼭 기입을 해주어야한다. Canonical form(정규형)이란? C++98의 OCCF에 대해여 정리 Orthodox Canonical Class Form (OCCF) 정식 클래스 형식 OCCF는 아래 네 가지의 형태를 명시적으로 정의하여 선언하는 것을 가리킨다. 기본 생성자 기본 소멸자 복사 생성자 할당 연산자 오버로딩 예를 통해 살펴보자 Animal.hpp #ifndef ANIMAL_HPP # define ANIMAL_HPP #include class Animal { protected: std::string type; public: Animal(void); //기본 생성자 Animal(const Animal ..
복사 할당 연산자
대입 연산자 오버로딩 → C++의 한가지 멋진 기능 중 하나는 클래스를 선언할 때 연산자에 특별한 의미를 부여할 수 있다는 것. 이것을 operator overloading이라고 함. 아래 나열되는 특징 네이밍 컨벤션을 따라 클래스에 멤버함수를 선언함으로서 C++ operator overload를 구현 가능. 예를 들어 ‘+’연산자를 오버로딩하기 위해서 operator+ 라는 이름의 멤버함수를 만들어주면 됨. 일반적으로 오버로딩에 많이 쓰이는 연산자는 다음과 같다. = (대입 연산자) +, - , * (이진 산술 연산자) +=, =, = (복합 대입 연산자) ==, != (비교 연산자) 대입 연산자 = 대입 연산자 구현 class MyClass { public: ... MyClass & operator=..