|
C언어에서는 call by value만 사용할 수 있고
C++언어에서는 call by value뿐 아니라 call by reference까지 사용할 수 있습니다.
C++언어에서 call by reference를 사용할 때 & 라는 연산자가 사용됩니다.
내부적으로는 pointer 방식이 적용된다고 보시면 됩니다.
Mins 님이 쓰신 글 :
: BC++을 처음 해보는 아이입니다~
: 역시나 C++은 좀 어렵네요^^;;;
: 예제 소스를 쳐서 하던중에 좀 이해가 가지 않는 부분이 있어서 적습니다~
:
: TListBox& operator << (TListBox& lbox, AnsiString str)
: {
: lbox.Items->Add(str);
: return lbox;
: }
:
: void __fastcall TForm1::Button4Click(TObject *Sender)
: {
: *ListBox1 << Edit1->Text;
: }
:
: 이런 소스가 있어서 한참을 봤습니다. 잘 이해가 가질 않았습니다.
: 그래서 포인터 변수를 배운 기억이 나서 아래와 같이 수정해 봤습니다.
:
: TListBox* operator << (TListBox* lbox, AnsiString str)
: {
: lbox->Items->Add(str);
: return lbox;
: }
:
: void __fastcall TForm1::Button4Click(TObject *Sender)
: {
: ListBox1 << Edit1->Text;
: }
:
: 이렇게 수정해서 실행해 봤는데 둘다 같은결과가 나왔습니다.
: 무슨 차이점이 있는지 궁금합니다.
|