一、相對於C中struct,C++作了很大的擴充。基本上和class 差很少。只有一些細節上的差異。編程
二、對於成員的默認訪問權限,class是private,struct是public。須要注意的是,程序中應該明確指出訪問權限,不要依賴默認的訪問權限。對於其它默認的狀況也是同樣,儘可能明確指出來,這是一個良好的編程習慣,增長代碼的可讀性。繼承
三、對於默認的繼承方式,class是private,struct是public。須要注意的是,class可繼承class,也可繼承struct。struct可繼承struct,也可繼承class。默認的繼承方式取決於子類是struct仍是class。和上面同樣,這裏應該明確指出繼承方式,而不該該依賴默認。編譯器
四、對於struct和class,均可以使用使用{}來賦初值,前提是:a、字段是public,由於public才能夠直接訪問;b、沒有父類,沒有自定義構造方法和虛方法,能夠有普通的成員方法。能夠認爲,繼承,自定義構造方法,虛方法改變了類的內部結構,所以編譯器禁止使用{}賦初值。編譯
五、定義模版參數,使用typename,也可使用class。可是不能使用struct。class