重複の可能性:
C++ でクラスと構造体を使用する必要があるのはいつですか?
C++ を使用してプログラムを作成するときに、CLASS 宣言ではなく STRUCT 宣言を使用する必要があるのはいつですか?
- 一度もない !!?
- 何か…気分が良くなるものはありますか?
重複の可能性:
C++ でクラスと構造体を使用する必要があるのはいつですか?
C++ を使用してプログラムを作成するときに、CLASS 宣言ではなく STRUCT 宣言を使用する必要があるのはいつですか?
この 2 つの唯一の違いは、メンバーが非公開であるstruct
のに対し、デフォルトで公開であることです。class
私のルールはstruct
、読み取り/書き込みに関する特別なセマンティクスのない関連データの塊を意味するときに使用することです。class
より意味のあるリッチなセマンティクス (読み取りメソッド) でデータをラップしたり、必要な保護を提供したり、より抽象的なものを実装したりする場合に使用します。
デフォルトのアクセス レベルを除いて、 astruct
と aclass
は完全に同等です。
違いは主にプログラマーの頭の中にあることがわかりました。慣例により、私たちは通常、struct
s を使用して小さなオブジェクトをまとめ、複雑な機能を使用せずに使用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.
};