面試官問這兩個區別
乙個值型別 乙個引用型別
乙個是存在棧上 乙個存在堆裡 棧裡只存個引用
結構裡的成員不能初始化值 類可以
結構沒建構函式 類有建構函式
結構不能繼承 類可以
面試官再問 結果傳入方法修改後外部的結構值多少
struct astruct
astruct a = new astruct()
void teststruct(astruct a)
a.x = ?
我沒經歷過這個情況 說外面也是5 回來一試不對
我只碰到過這個情況
vecter2 v2 = new vecter2()
v2.x = 5; //這種操作還是同乙個結構
vecter2 v3 = v2; //一賦值就是另乙個結構了與v2沒什麼關係了 相當於另乙個值了
v3.x=10;//
這時 v2.x 還是5
結構確實讓人疑惑,其實可以理解成每傳遞一次就當是乙個數字傳過去了
所以結構體大的時候頻繁傳遞會產生大量不必要的拷貝,適合輕量資料的情況 如 color vecter2 vecter3
參考:
struct與class的區別
如何選擇結構還是類 一 類與結構的示例比較 結構示例 public struct person 類示例 public class testtime 呼叫過程 public class test 從上面的例子中我們可以看到,類的宣告和結構的宣告非常類似,只是限定符後面是 struct 還是 class...
class與struct的區別
類與結構的例項比較 類與結構的差別 如何選擇結構還是類 一 類與結構的示例比較 結構示例 public struct person 類示例 public class testtime 呼叫過程 public class test 從上面的例子中我們可以看到,類的宣告和結構的宣告非常類似,只是限定符後...
struct與class的區別
如何選擇結構還是類 一 類與結構的示例比較 結構示例 public struct person 類示例 public class testtime 呼叫過程 public class test 從上面的例子中我們可以看到,類的宣告和結構的宣告非常類似,只是限定符後面是 struct 還是 class...