본문 바로가기

복사대입연산자2

[C++] 생성자, 소멸자, 복사생성자, 복사 대입 연산자, 복사생성 방지에 대한 얘기 C++ 에서는 기본적으로 빈 클래스를 생성하면 자동으로 생성해주는 생성자와 소멸자 등 이있다. 예를들어 는 와 같은 기능을 수행한다고 보면 된다. 매번 다 모든 생성자들과 소멸자를 생성 하는것은 아니고, 컴파일러가 필요하다고 판단될때 생성해준다. 아래와 같은 동작을 수행할 때 생성 된다. 자동으로 생성된 것을 사용하여 문제가 없으면 좋겠지만, 문제가 발생하는 경우들이 있다. 대표적으로 1 .참조자를 데이터 멤버로 가지고 있는 경우 2. 상수 객체를 데이터 멤버로 가지는 경우 두가지를 꼽을 수 있다. 위와 같은 상황에서는 직접 복사 대입 연산자를 정의해 주어야 한다. 그렇지 않으면 컴파일 오류가 발생하게 된다. 그러면, 복사생성자나 대입연산자를 자동생성하지 않는 방법은 없을까? 사본을 만들지 않고 유일한 .. 2021. 2. 17.
[EC++] 용어 정리 ( 선언, 정의, 기본생성자, 복사생성자, 초기화, 복사대입연산자 등 ) 용어 정리 선언(declaration) - 코드에 사용되는 '어떤 대상'의 이름과 타입을 컴파일러에게 알려주는 것 - 구체적인 세부사항은 선언에 들어 있지 않다. 정의(definition) - 선언에서 빠진 구체적인 세부사항을 컴파일러에게 제공하는 것 - 객체의 경우에 있어서 정의는 컴파일러가 그 객체에 대한 메모리를 마련해 놓는 부분 - 함수나 함수 템플릿에 대한 정의는 그들에 대한 코드 본문을 제공하는 것 - 클래스 혹은 클래스 템플릿의 경우에는 그 클래스 혹은 템플릿의 멤버를 넣어준 결과 초기화 - 어떤 객체에 최초의 값을 부여하는 과정 - 사용자 정의 타입으로 생성한 객체의 경우, 초기화는 생성자에 의해 이루어진다. 기본생성자 - 어떤 인자도 주어지지 않은 채로 호출될 수 있는 생성자 - 원래부터.. 2020. 2. 10.