其實應該說.Net Framework與標準C++ 不過因為大家只用VB所以就下這個標題
C++的Class與.Net的最大差別就是
C++的Class instance預設以Call By Value傳值
也就是說如果傳入一個物件給function
它實際上是"複製一份物件" (這個跟.net的struct變數相同)
但是如果class定的比較大時就會有效能上的問題
幸好c++也有Call By Reference
不過有資料被更改的風險
又幸好我們可以規定傳進去的是Constant
那嚜
就可以兼顧by value與 by reference的優點!!!
例如
void foo3(const String& s);
表示傳入的String s不會被foo3給竄改
這也說明了為什麼c++ 的STL裡面的function那嚜喜歡用const修飾字^^
沒有留言:
張貼留言