タグ付けされた質問 「this-pointer」

2
これのstd :: shared_ptr
私は現在、スマートポインターの使用方法を学習しようとしています。しかし、いくつかの実験を行っているときに、満足のいく解決策を見つけることができない次の状況を発見しました。 クラスAのオブジェクトがクラスB(子)のオブジェクトの親であるとしますが、両方がお互いを知っている必要があります。 class A; class B; class A { public: void addChild(std::shared_ptr<B> child) { children->push_back(child); // How to do pass the pointer correctly? // child->setParent(this); // wrong // ^^^^ } private: std::list<std::shared_ptr<B>> children; }; class B { public: setParent(std::shared_ptr<A> parent) { this->parent = parent; }; private: std::shared_ptr<A> parent; }; 問題は、クラスAのオブジェクトstd::shared_ptrがそれ自体の(this)をその子にどのように渡すことができるかです。 …

2
「これ」がラムダによってキャプチャされた場合、明示的に使用する必要がありますか?
thisラムダでのキャプチャが明示的に使用することがわかった例。例えば: capturecomplete = [this](){this->calstage1done();}; しかし、それを暗黙的に使用することも可能であるようです。例えば: capturecomplete = [this](){calstage1done();}; これをg ++でテストし、コンパイルしました。 これは標準のC ++ですか?(もしそうなら、どのバージョンか)、またはそれは何らかの拡張形式ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.