可能重複:
When should you use a class vs a struct in C++?當使用結構上類在C++
時,如果有的話,應該一個用編寫程序時使用結構聲明,而不是類的聲明C++?
- 從不!! ?
- 任何事情......無論什麼讓人感覺更好?
可能重複:
When should you use a class vs a struct in C++?當使用結構上類在C++
時,如果有的話,應該一個用編寫程序時使用結構聲明,而不是類的聲明C++?
兩者的唯一區別在於默認struct
是公開的,而class
成員是私人的。
我的規則是使用struct
當我的意思是一堆相關數據沒有任何特殊的語義讀/寫它們。當我打算用更豐富的語義(讀取方法)來包裝更有意義的數據時,使用class
,提供任何所需的保護或實現更抽象的內容。
除了默認訪問級別,struct
和class
是完全等效。
我發現差別主要在程序員的頭腦中 - 按照慣例,我們通常使用struct
s將沒有複雜功能的小對象組合在一起,例如,只有3個成員的Point
- 座標。 POD類型。
另一方面,我們通常使用class
es來包含更大的對象,具有複雜的功能和相當大的接口。
例如:
struct Point {
int x,y,z;
};
class Shape{
std::vector<Point> corners;
public:
Shape(const std::vector<Point> corners);
double getVolume();
double getArea();
bool isConvex();
//etc.
};
Arghhhh ......我討厭當我的名字被放在旁邊的一票,我沒有選擇關閉原因。 –
請在此處閱讀struct和class的詳細信息:https://stackoverflow.com/questions/54585/when-should-you-use-a-class-vs-a-struct-in-c/47168608#47168608。基本上我使用結構來構造數據結構,其成員可以採取任何價值,這樣更容易。 – Frrank