복사 생성자 3

ex00

ex00은 아직 소수점에 대한 이야기는 하지 않고 복사 생성자, 오버로드 vs 오버라이딩, 복사 할당(대입) 연산자에 대해서 말하고 있다. 나의 글의 C++의 복사 생성자, 오버로드 vs 오버라이딩, 복사 할당 연산자에 대해서 보고 오면 좋을 것 같다. 복사 생성자, 복사 할당(대입) 연산자 https://wo-dbs.tistory.com/category/C%2B%2B/C%2B%2B%20%EB%B3%B5%EC%82%AC%20%EC%83%9D%EC%84%B1%EC%9E%90%2C%20%EB%B3%B5%EC%82%AC%20%ED%95%A0%EB%8B%B9%20%EC%97%B0%EC%82%B0%EC%9E%90%28Canonical%20form%29 'C++/C++ 복사 생성자, 복사 할당 연산자(Canonic..

복사 생성자와 복사 할당 연산자(Canonical form)

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 ..

복사 생성자

복사 생성자란? → 한 객체의 내용을 다른 객체로 복사하여 생성된 생성자 일반적으로 생성된 생성자와 같은데 그 내용이 다른 객체를 복사하여 생성된 거승로 이해 복사 생성자읙 특징 자신과 같은 타입의 객체를 인자로 받는다. 복사 생성자가 정의 되어 있지 않다면, 디폴트 복사 생성자가 생성됨. 디폴트 복사 생성자? →일반 생성자에서 디폴트 생성자의 특징과 똑같다면 보면 되는데 클래스 내에 복사 상생자를 정의하지 않더라도 객체 생성 시 컴파일러가 자동으로 복사 생성자를 생성한다. 복사 생성자의 가장 기본적인 코드 class Test { public: Test(const Test& obj) { // copy constructor ... } } 명심해야될 부분 앞으로 복사 생성자를 정의해야 할 상황 → 매개 변수..