トップページ > プログラム > 2014年07月08日 > VtPt2aKV

書き込み順位&時間帯一覧

48 位/202 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000010100000000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part113

書き込みレス一覧

C++相談室 part113
443 :デフォルトの名無しさん[sage]:2014/07/08(火) 11:28:54.54 ID:VtPt2aKV
shared_ptr使って親と子を結びつける時にどうしたらいいかわからないです。
#include <stdio.h>
#include <memory>
#include <set>
class IParent;
class IChild
{
std::shared_ptr< IParent > m_parent;
protected:
public:
IChild() { puts( "IChild" ); }
public:
virtual void draw() { puts( "child" ); }
virtual ~IChild() { puts( "~IChild" ); }
friend class IParent;
};
class IParent
{
std::set< std::weak_ptr< IChild > > m_childs;
public:
void add( std::shared_ptr< IChild > child )
{
// child.m_parent = shared_ptr<IParent>(this)? // ←これダメな気がする
m_childs.insert( child );
}
};
int main(int argc, _TCHAR* argv[])
{
std::shared_ptr< IParent > parent = std::shared_ptr< IParent >( new IParent );
parent->add( std::shared_ptr< IChild >( new IChild() ) );
return 0;
} 親子関連のお手本とかありますか?
C++相談室 part113
449 :デフォルトの名無しさん[sage]:2014/07/08(火) 13:47:07.47 ID:VtPt2aKV
大切なお昼休みなのに返答ありがとうございます
friend含めて設計見直してみます
ありがとう


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。