나는 복잡한 클래스가 메인 뭔가 이것이다 : 나는 일이 모든 문을 위해 복잡한 클래스에서 필요로하거나 것이 무엇 생성자초기화, 복사 생성자와 할당
int main()
{
complex c1;
complex c2=c1;
complex c3(c1);
complex c4;
c4=c1;
}
? 그리고는 오버로드 된 할당 또는 복사 생성자는 다음에 사용됩니다
complex c2=c1;
complex c3(c1);
나는 복잡한 클래스가 메인 뭔가 이것이다 : 나는 일이 모든 문을 위해 복잡한 클래스에서 필요로하거나 것이 무엇 생성자초기화, 복사 생성자와 할당
int main()
{
complex c1;
complex c2=c1;
complex c3(c1);
complex c4;
c4=c1;
}
? 그리고는 오버로드 된 할당 또는 복사 생성자는 다음에 사용됩니다
complex c2=c1;
complex c3(c1);
complex c1;
기본 C-토르를.
complex c2=c1;
카터.
complex c3(c1);
카터.
complex c4;
디폴트 콜터.
c4=c1;
할당 연산자.
다른 생성자가 정의되어 있지 않거나 매개 변수없이 생성자를 정의 할 수있는 경우 기본 생성자는 컴파일러에 의해 정의됩니다.
복사 생성자 및 할당 연산자는 정의하지 않은 경우 컴파일러에 의해 정의됩니다.
질문과 주제에 대한 자세한 내용에 대한 꽤 좋은 일치하는 대답이 주어진다복사 생성자의 사본으로,라고 기존 객체. 대입 연산자는 이미 초기화 된 객체에 다른 기존 객체의 새 값이 할당 될 때 호출됩니다.
c4 = c1; // calls assignment operator, same as "c4.operator=(c1);"
complex c2 = c1; // calls copy constructor, same as "complex c2(c1);"
할당 연산자가 c2에 액세스 할 수 있는지 또는 "complex c5 = complex()"에만 해당해야합니까? –
@cnd의 경우에만 @endre. 귀하의 예제와 c5 복사 생성자입니다. – ForEveR