관리 메뉴

HAMA 블로그

Call by value in Polyglot 본문

소프트웨어 사색

Call by value in Polyglot

[하마] 이승현 (wowlsh93@gmail.com) 2015. 11. 23. 11:20


"자바는 call by value 입니다."


자바는 객체를 가르키는 레퍼런스라는 개념이 있는것이지, 이게 함수의 매개변수로 넘어갈때는 

call by value 로 넘어갑니다. 즉  레퍼런스 그 자체가 deep copy 되어 넘어갑니다.


언어별 정리


C       :  call by value   ( 포인터 그 자체도 매개변수로 넘어갈때 value  복사됨, clone copy 됨 ) 

C++   : call by value    (  "&  레퍼런스"  일 경우 call by reference , 즉 clone copy 하지 않음 )

Java  : call by value   ( 레퍼런스 그 자체도 매개변수로 넘어갈때 value  복사됨, , clone copy 됨 

C#     : call by value    ( "ref"  키워드 붙으면  call by reference , 즉 clone copy 하지 않음 )

Python : call by value ( python은 모두 객체이기때문에, call by object 라 불리지만, 이 글에서는 이해를쉽게하고자  저렇게 말함, 즉 자바의 객체 레퍼런스를 넘기는것과 동일 효과) 

Javascript : call by value ( 자바,파이썬과  동일) 



마지막으로 reference 의 구체적 정의는 각 언어에서 그것을 사용한 놈 마음이기 때문에 

C++ 을 만든 사람은 그것을 어떻게 차용했는지 알아보려면 아래 링크 보시면 됩니다. ~

https://www3.ntu.edu.sg/home/ehchua/programming/cpp/cp4_PointerReference.html\

http://www.stroustrup.com/C++11FAQ.html#rval

'소프트웨어 사색 ' 카테고리의 다른 글

가벼운 웹사이트 만들기  (0) 2015.12.01
JIT 잡동사니  (0) 2015.11.29
딥러닝 라이브러리 - Caffe (머신-비전 특화)  (0) 2015.11.18
WebRTC  (0) 2015.11.13
객체 복제 in Polyglot  (0) 2015.11.13
Comments