복사 대입 연산자

객체 복사 함수는 주어진 객체의 모든 데이터 멤버 및 모든 기본 클래스 부분을 빠뜨리지 말고 복사해야 한다. 클래스의 복사 함수 두 개를 구현할 때, 한쪽을 이용해서 다른 쪽을 구현하지 마라. 그 대신, 공통된 동작을 제3의 함수에다 분리해 놓고 양쪽에서 호출해라. 객체를 복사할 때 주의할 점 객체의 안쪽 부분을 캡슐화한 객체 지향 시스템 중 설계가 잘 된 것들을 보면, 복사 함수가 복사 생성자와 복사 대입 연산자 딱 둘만 있다. 이러한 복사 함수는 컴파일러가 필요에 따라 만들어내기도 한다. 컴파일러가 만든 복사함수는 기본적인 요구에 충실히 동작한다. 복사되는 객체가 갖고 있는 데이터를 빠짐없이 복사한다. 객체 복사 함수를 선언하는 것은 컴파일러가 생성하는 것보다 추가적인 동작을 하기 위해서일 것이다. ..
컴파일러에서 자동으로 제공하는 기능을 허용하지 않으려면 대응되는 멤버 함수를 private로 선언한 후 구현하지 않은 채로 두면 된다. Uncopyable과 비슷한 기본 클래스를 사용하는 것도 좋다 컴파일러가 만든 함수 관리 컴파일러는 생성자, 소멸자, 복사 생성자, 복사 대입 연산자 등을 필요시에 만들어 낸다. 하지만, 때에 따라 이러한 것들이 허용되지 않게 막고 싶을 수 있다. class HomeForSale { ... }; // 부동산 객체 HomeForSale h1; HomeForSale h2; HomeForSale h3(h1); // h1 복사 시도 h1 = h2; // h2 복사 시도 모든 자산은 세상에 단 하나밖에 없다. 하지만, 위의 코드에서는 복사하려는 시도를 하고 있다. 이러한 시도 자..
컴파일러는 경우에 따라 클래스에 대해 기본 생성자, 복사 생성자, 복사 대입 연산자, 소멸자를 암시적으로 만들 수 있다. C++이 자동 생성하는 함수들 C++ 클래스는 생성자와 소멸자, 대입 연산자를 포함한다. 생성자는 새로운 객체를 메모리에 만드는데 필요한 과정을 제어하고 객체의 초기화를 진행한다. 소멸자는 객체를 없앰과 동시에 그 객체가 메모리에서 적절히 사라질 수 있도록 하는 과정을 제어한다. 대입 연산자는 기존의 객체에 다른 객체의 값을 줄 때 사용하는 함수이다. 이러한 것들은 유용하면서도 위험할 수 있는 함수들이다. C++이 스스로 만드는 함수 C++은 복사 생성자, 복사 대입 연산자, 소멸자를 직접 선언하지 않으면 스스로 생성한다. 이들은 모두 public 멤버이며 inline함수이다. cla..
hvv_an
'복사 대입 연산자' 태그의 글 목록