passing objects to functions (物件作為函式引數)
objects as function arguments
(物件作為函式引數)
you can pass objects by value or by reference.
(物件作為函式引數,可以按值傳遞,也可以按引用傳遞)
(1)objects as function return value
(物件作為函式引數)
// pass by value
void
print
( circle c )
intmain()
其中,先建立乙個mycircle
物件,然後print
函式呼叫該物件。
(2)objects reference as function return value
(物件引用作為函式引數)
void
print
( circle& c )
intmain()
雖然在呼叫print
函式時傳入的引數是物件,但是在print
函式定義中,使用了引用型別。
(3)objects pointer as function return value
(物件指標作為函式引數)
// pass by pointer
void
print
( circle* c )
intmain()
在呼叫print
函式時傳入的引數是建立的物件的位址,在print
函式定義中,對mycircle
物件進行了解引用。
objects as function return value
(物件作為函式返回值)
// class object ;
object f (
/*函式形參*/
)// main() ;
object* f (
/*函式形參*/
)// main() ;
object* f ( object* p,
/*其它形參*/
)// main()
objects reference as function return value
(物件引用作為函式返回值)
// class object ;
object& f (
/*函式形參*/);
// do something
return o;
//這是**的用法
}
可行的用法1:
// class object ;
class
x}
o
的屬性會被保留。
可行的用法2:
// class object ;
object& f ( object& p,
/*其它形參*/
)// main()
一些高階問題
傳值,傳址,傳指標,傳引用都是騙初學者的。c++中有意義的概念是傳值和傳引用。differences between a pointer variable and a reference variable
difference between passing by reference vs. passing by value?
C 中物件作為引數傳遞給函式的三種情況
include include using namespace std 物件陣列 物件陣列中的每乙個成員建立時都會使用建構函式 可以建立一維以及二維物件陣列 square s 5 square s 5 5 建立物件陣列的同時,初始化物件陣列的方式 square s 3 class square vo...
物件作為函式引數
物件作為函式的引數時,其傳遞過程較為複雜,傳遞方式比較獨特。其傳參過程與陣列不同 陣列變數的名稱代表陣列的首位址,而物件的變數名稱卻不能代表物件的首位址。傳參時不會像陣列那樣以首位址作為函式的引數傳遞,而是先將物件中的所有資料進行備份 複製 將複製的資料作為形參傳遞到呼叫函式中去 類物件中的資料成員...
c 中關於陣列作為函式引數的幾種方法
由於陣列的元素個數預設情況下是不作為實參內容傳入呼叫函式的,本程式用來討論有此帶來的 相關問題,以及解決問題方法,即給呼叫函式傳遞陣列的元素個數的幾種有效方法並實現它 include include using namespace std void putarray1 int p,int lengt...