Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 함수에 개체를 전달하는 방법은 무엇입니까?

<시간/>

객체를 함수에 전달하는 네 가지 방법이 있습니다. X 클래스가 있고 fun 함수에 전달하려고 한다고 가정해 보겠습니다. 그러면 -

값으로 전달

이렇게 하면 함수 범위에서 개체의 얕은 로컬 복사본이 생성됩니다. 여기에서 수정한 사항은 전달된 객체에 반영되지 않습니다. 예를 들어,

선언

void fun(X x);

전화 걸기

X x;
fun(x);

참조로 전달

이것은 객체에 대한 참조를 함수에 전달합니다. 여기에서 수정한 사항은 전달된 객체에 반영됩니다. 개체의 복사본이 생성되지 않습니다. 예를 들어,

선언

void fun(X &x);

전화 걸기

X x;
fun(x);

const 참조로 전달

이것은 객체에 대한 const 참조를 함수에 전달합니다. 여기서 직접 개체를 수정/재할당할 수 없습니다(그렇지만 해당 메서드를 사용할 수 있음). 이것은 함수가 객체의 읽기 전용 복사본만 갖도록 하려는 경우에 유용합니다. 개체의 복사본이 생성되지 않습니다. 예를 들어,

선언

void fun(X const &x);

전화 걸기

X x;
fun(x);

const 포인터로 전달

이것은 객체에 대한 const 포인터를 함수에 전달합니다. 여기에서 포인터를 수정/재할당할 수 없습니다. 이것은 함수가 포인터에 이 객체의 주소만 갖도록 하려는 경우에 유용합니다. 개체의 복사본이 생성되지 않습니다. 예를 들어,

선언

void fun(X const *x);

전화 걸기

X x;
fun(&x);

const 포인터로 전달

이것은 객체에 대한 포인터를 함수에 전달합니다. 이는 개체에 대한 참조를 전달하는 것과 유사합니다. 개체의 복사본이 생성되지 않습니다. 예를 들어,

선언

void fun(X *x);

전화 걸기

X x;
fun(&x);