次のように宣言されたクラスがあるとします。
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&)
、問題が解決します。しかし、そのエラーが報告される理由を知りたいです。