1

次のように宣言されたクラスがあるとします。

class A {
private:
    CWnd wnd;
public:
    A(CString) {}
    ...
};

のオブジェクトを作成しますA

auto a = A{ CString{} };

コンパイラは次のように報告します。

error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject'

そのコードで何が間違っていますか?

この問題には回避策があります。コンストラクターの署名を に変更するとA(const CString&)、問題が解決します。しかし、そのエラーが報告される理由を知りたいです。

4

1 に答える 1

0

CWnd コンストラクターはプライベートです。CWnd (または派生クラス) からクラスを派生させ、ポインターをメンバー変数として使用することをお勧めします。目的の MFC 関数の 1 つを使用して、ウィンドウを動的に作成します。

于 2015-01-19T22:43:28.823 に答える