クライアントはDLLのトップクラスであるため、初期化時に新しいSessionオブジェクトを作成して渡す必要があり、リクエスターを作成し、セッションを同じセッションに割り当てる必要があります。出来ますか?
class Session
{
public:Session() {}
};
class Requestor
{
public: Requestor(const Session& session) {};
};
class Client
{
public:Client()
{
Session newSession;
requestor = Requestor(newSession);
}
private:
Session session;
Requestor requestor;
};
可能ですが、初期化の順序がメンバーの宣言の順序に依存するという点で、やや脆弱です。これらがあなたの例のように残っているならば、あなたは簡単に行うことができます
class Client()
{
public:
Client() : requestor(session) // session is implicitly default constructed
{}
private:
Session session;
Requestor requestor;
};
注:Session
コンストラクターでローカルオブジェクトをインスタンス化する理由は明確ではありません。それは間違いだと思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加