我一直在閱讀Qt Creator的源代碼。 什麼時候使用struct
比在C++中使用class
更合適?什麼時候使用比在C++中使用類更合理的結構?
0
A
回答
3
這完全是個人喜好或編碼習慣的問題。 struct
和class
在C++中基本相同,區別在於默認訪問說明符和基類爲public
,其中struct
和private
爲class
。
例如,下面的Bar
兩個定義是等價的:
class Foo {};
struct Bar : Foo {};
class Bar : public Foo {};
這裏太:
class Foo {};
struct Bar : private Foo {};
class Bar : Foo {};
,並在這裏太:
class Bar
{
int n; // private
public:
double x; // public
};
struct Bar
{
private:
int n;
public:
double x;
};
此外,您還可以轉發聲明Bar
as class Bar
or struct Bar
i nterchangeably。
0
它可能更適合當它是普通的舊數據沒有任何功能。在C++中,class
和struct
之間的唯一區別是struct
成員默認爲public
,而private
爲class
。
1
除了默認訪問(struct => public,class => private),沒有什麼區別。爲了便於閱讀,當我定義一個普通的C結構(只是數據)時,或者當我的大多數成員/方法是公共的時,我更喜歡使用struct。
1
我想到struct
作爲記錄。它們將變量捆綁在一起,並且您希望訪問和修改結構成員而不進行間接訪問,如函數調用。例如,當您想要將數據項組合在一起以將其轉儲到文件中或通過網絡發送時,則使用類可能會使代碼更難以閱讀和理解。