[인터넷 면접 필기시험 취 합 C / C + + - 22] 복사 구조 함수 호출 시기 - 퍼 펙 트 월 드

제목: 다음 중 어떤 경우 에 복사 구조 함 수 를 호출 하지 않 습 니까?
A: 클래스 의 한 대상 으로 다른 대상 을 초기 화 할 때
B: 함수 의 형 삼 이 클래스 의 대상 이 라면 함 수 를 호출 할 때 형 삼 과 실 삼 을 결합 할 때
C: 함수 의 반환 값 이 클래스 의 대상 이 라면 함수 가 호출 자 를 되 돌 릴 때
D: 클래스 의 대상 으로 다른 대상 에 게 값 을 부여 할 때
정 답: D
분석:
A: 클래스 의 한 대상 으로 다른 대상 을 초기 화 할 때. 예 를 들 어:
int main()  
{  
   point A(1,2);  
   point B(A);//   A     B,         .  
   point C = A;//       A   C,         ,    D  
   point *D = new point(A);//       A   C,           
   ...  
}

B: 함수 의 형 삼 이 클래스 의 대상 이 라면 함 수 를 호출 할 때 형 삼 과 실 삼 을 결합 할 때. 
void f(point p)
{
}
main()
{
   point A(1,2);
   f(A);//           ,      ,         .
}

C: 함수 의 반환 값 이 클래스 의 대상 이 라면 함수 가 호출 자 를 되 돌 릴 때
point g()
{
   point A(1,2);
   return A;//           ,      ,        .
}
void main()
{  
   point B;
   B = g();
}

D: 클래스 의 대상 으로 다른 대상 에 게 값 을 부여 할 때
int main()
{
   point A,B;
   A = B;//      ,    A,           =   ,          。
}

PS: 또 다른 상황 은 복사 구조 함 수 를 호출 합 니 다. 그것 은 임시 대상 이 필요 할 때 입 니 다.

좋은 웹페이지 즐겨찾기