ac 構造体をラップする c++ クラスを書きたいと思っています。ac 構造体の簡単な例を次に示します。
struct POINT {
long x;
long y;
}
今、私はこの次のクラスを想定していますが、それが「パフォーマンス」なのか、C++ スタイルが良いのかはわかりません。不要な変数や関数呼び出しを使用したくありませんでした。私のコードを改善していただければとてもうれしいです:)。
このクラスの背後にある基本的な考え方は、構造体の単なるラッパー/ハンドラーであるということです。これが、プライベート データを直接変更できる理由setStruct
でgetStruct
あり、それは単なるポインタであるということです。他のメンバーの名前は常にset<Attribute>
およびget<Attribute>
です。
setStruct
私が考えることができる唯一の欠点を使用する場合、スコープが原因で構造体が削除される可能性があるため、ポインターが「無効」になる可能性があります。
namespace wrapper {
class POINT {
::POINT * POINT_;
public:
POINT() {
POINT_ = new ::POINT;
}
~POINT() {
delete POINT_;
}
inline void setX( long x ) {
POINT_->x = x;
}
inline long getX() {
return POINT_->x;
}
inline void setY( long y ) {
POINT_->y = y;
}
inline long getY() {
return POINT_->y;
}
inline void setStruct(::POINT * __POINT) {
POINT_ = __POINT;
}
inline ::POINT * getStruct() {
return POINT_;
}
};
}