-1

最近、私はMFCを学んでいます.次のコードは私を大いに困惑させました:

  class CRect : public tagRECT
{
public:

// Constructors

// uninitialized rectangle
CRect();
// from left, top, right, and bottom
CRect(int l, int t, int r, int b);
// copy constructor
CRect(const RECT& srcRect);
// from a pointer to another rect
CRect(LPCRECT lpSrcRect);
// from a point and size
CRect(POINT point, SIZE size);
// from two points
CRect(POINT topLeft, POINT bottomR
...

CRect の基底クラスは構造体です! 私はこれを前に学んだことはありません。

CWnd::GetClientRect(LPRECT lpRect);

パラメータとしてrectまたは&rect (CRect rect) を使用できます。

構造体ベースを持つクラスに関するいくつかのルールを知りたいです。ありがとうございました!

4

1 に答える 1

5

C++ では、メンバーの継承とアクセス レベルに関する既定の動作を除いて、クラスと構造体は同じです。

C++ クラスのデフォルトの継承 = プライベート メンバー変数と関数のデフォルトのアクセス レベル = プライベート

C++ 構造体のデフォルトの継承 = public メンバー変数と関数のデフォルトのアクセス レベル = public

つまり、クラスは C++ の構造体から継承できます。

于 2013-03-26T13:05:31.087 に答える