C++에서 클래스의 객체가 매개 변수로 함수로 전달되면 클래스의 복사 생성자가 호출됩니다.값을 함수에 전달할 때 호출 할 함수
개체가 nonclass 형식인지 궁금 해서요, 어떤 함수가 호출됩니까?
마찬가지로 C에서 변수의 값이나 주소를 함수로 전달할 때 어떤 함수가 호출됩니까?
감사합니다.
C++에서 클래스의 객체가 매개 변수로 함수로 전달되면 클래스의 복사 생성자가 호출됩니다.값을 함수에 전달할 때 호출 할 함수
개체가 nonclass 형식인지 궁금 해서요, 어떤 함수가 호출됩니까?
마찬가지로 C에서 변수의 값이나 주소를 함수로 전달할 때 어떤 함수가 호출됩니까?
감사합니다.
함수가 호출되지 않습니다. 객체를 구성하는 바이트가 호출 수신자의 올바른 위치 (메모리 또는 레지스터의 위치)로 간단히 복사됩니다.
함수가 호출되지 않습니다.
비 객체 유형에는 메소드가 없으므로 함수에 의해 그대로 사용되도록 스택에 복사됩니다.
복사 생성자는 객체가 값에 의해 전달되고 비 POD 유형 인 경우에만 호출됩니다. 이것은 함수에 의해 객체가 변경되기를 원하지 않는다면 객체를 참조로 전달하고 참조를 const
참조로 전달하는 일반적인 관행 중 하나입니다.
구현에 따라 다르지만 일부 경우 정수 유형 값이 필요한 함수에 부동 소수점 값을 전달하는 경우 함수 호출이 발생할 수 있습니다. (이것은 언어의 일부가 아닌 구현 세부 사항이지만 사실 때문에 그렇습니다. 그렇기 때문에 그러한 변환은 종종 느려지므로 함수 호출이 필요하거나 필요하지 않습니다.)
Eh? nonclass 유형이란 무엇을 의미합니까? 기본 유형이 스택에 그냥 푸시됩니다. 어떤 함수를 호출 할 필요가 없습니다. – nothrow