所以這是一個非常簡單的問題,但我似乎無法找到在某些情況下選擇一個的一般規則。一般來說,如何在C++中選擇一個結構體和一個類
比方說,我有一個簡單的Point
類,像這樣:
class Point
{
public:
Point();
Point(double, double, double);
Point(const Point& other);
Point& operator=(const Point& other);
bool operator==(Point& lhs, Point& rhs);
void translate(double, double, double);
double getX() const;
double getY() const;
double getZ() const;
void setX(const double);
void setY(const double);
void setZ(const double);
private:
double x_, y_, z_;
}
所有好,但爲什麼不公開與X,Y,Z使之成爲結構和節省一半的代碼?
另一個例子可以說我有一個Header
結構是這樣的:
struct Header
{
short int id;
short int version;
size_t indexOffset;
size_t indexSize;
}
在什麼情況下我想使它成爲一個類?也有上面有什麼東西有什麼區別,我也看到了質量這樣的代碼:
class Header
{
public:
short int id;
short int version;
size_t indexOffset;
size_t indexSize;
}
所以我想一個子問題,這是我該如何決定何時成員變量私有。我知道OO純粹主義者可能總會說,但我不知道這個好處。
非常感謝。
http://stackoverflow.com/questions/2750270/cc-struct-vs-class – Caribou
also http://stackoverflow.com/questions/146452/what-are-pod-types-in-c – Caribou
http: //sackoverflow.com/questions/92859/what-are-the-differences-between-struct-and-class-in-c?rq=1 –