- mallocの後にfree不要と言うバカいるの?Part2
665 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 05:41:08.75 ID:G+oloE/W - ttp://nas6.main.jp/secret/ContainerPtr.htm
コンテナポインタ説明ページ メモリリークを退治した^^
|
- C++相談室 part119 [転載禁止]©2ch.net
115 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 19:17:25.38 ID:G+oloE/W - >>112
template<typename T> class hoge{}; hoge<hoge<int>*> n_inst; ??????
|
- C++相談室 part119 [転載禁止]©2ch.net
117 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 19:27:06.77 ID:G+oloE/W - template<typename T, typename U> class hoge{};
hoge<hoge<int, int>*, int> tu_inst; 意味が分からん。それとも template<typename T> class hoge{ public: T* m_p; }; hoge<int> n_inst; n_inst.m_p;//int*型 普通にこうしたいだけ?
|
- C++相談室 part119 [転載禁止]©2ch.net
118 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 19:29:10.11 ID:G+oloE/W - ていうか、論理が分からないのか、循環参照したがるんだよな
循環参照は不定なだけ
|
- C++相談室 part119 [転載禁止]©2ch.net
120 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 20:43:03.17 ID:G+oloE/W - >>119
int hogeeeeeee(int i){return hogeeeeeee(i);} void main(){hogeeeeeee(1); return;} これが戻り値が不定にならないと思うのと同じ
|
- C++相談室 part119 [転載禁止]©2ch.net
122 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 20:50:29.42 ID:G+oloE/W - テンプレートは動的でなく静的だからね
TempClass< float, 6 > test1; // OK TempClass< char, items++ > test2; // Error, second parameter // must be constant.
|
- C++相談室 part119 [転載禁止]©2ch.net
127 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 21:16:27.91 ID:G+oloE/W - >>124
テンプレートは生成が静的だから完全解決できないと生成できません プログラムコードも静的だから完全解決できないこういうコードはできません int hoge(int i){return hage(i);} int hage(int i){return hoge(i);} void main(){int ret=hoge(1); return;} hogeかhageかでif分岐などで解決しないと実行できません で>>124みたいなテンプレートは↑こういう風に解釈されます
|
- C++相談室 part119 [転載禁止]©2ch.net
129 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 21:47:39.21 ID:G+oloE/W - どういうのがやりたいのかわからんけど、↓でそれの何ができないの?
class base{ public: base(base& n){m_p=&n;} base* m_p; }; class A : public base{ public: A(A& n) : base(n){;} }; class B : public base{ public: B(B& n) : base(n){;} };
|
- C++相談室 part119 [転載禁止]©2ch.net
131 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 22:06:39.08 ID:G+oloE/W - >>129
でA←→Bの相互通信がしたいなら messengerクラスを独立に作ればいいだけ
|
- C++相談室 part119 [転載禁止]©2ch.net
132 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 22:09:18.49 ID:G+oloE/W - base* m_p;
つかこれはthisポインタだな
|
- C++相談室 part119 [転載禁止]©2ch.net
133 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 22:12:34.19 ID:G+oloE/W - 要するにクラス参照の持ち合いなんて
baseクラスからAとBを派生させて 独立なメッセージクラスで通信すりゃあいいんだよ
|
- C++相談室 part119 [転載禁止]©2ch.net
134 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 22:19:52.99 ID:G+oloE/W - abstract factoryパターンだろ
|
- C++相談室 part119 [転載禁止]©2ch.net
136 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 22:39:04.34 ID:G+oloE/W - 要するにAとBのクラス参照の持ち合いなんて
baseクラスからAとBを派生させて 独立なメッセージクラスで通信すりゃあいいんだよ デザインパターンではabstract factoryパターンだろ そのまんまだよ
|
- C++相談室 part119 [転載禁止]©2ch.net
139 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 23:24:43.23 ID:G+oloE/W - class base{
public: int m_val; base(int i):m_val(i){;} virtual int func(int i){return i;} }; class add:public base{ public: int func(int i){return m_val+i;} }; class sub:public base{ public: int func(int i){return m_val-i;} }; base *p,*q;//abstract factoryパターン int r;//メッセージクラス p=new add(21); r=p->func(7); q=new sub(r); r=q->func(7);
|
- C++相談室 part119 [転載禁止]©2ch.net
140 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 23:34:56.29 ID:G+oloE/W - class base{
public: int m_val; base(int i=0):m_val(i){;} virtual int func(int i=0){return i;} }; class add:public base{ public: int func(int i=0){return m_val+i;} }; class sub:public base{ public: int func(int i=0){return m_val-i;} }; base *p,*q;//abstract factoryパターン int r;//メッセージクラス p=new add(21); r=p->func(7); q=new sub(r); r=q->func(7); intを任意のクラスにしたらなんか色々出来そうだろ
|
- C++相談室 part119 [転載禁止]©2ch.net
141 :NAS6 ◆n3AmnVhjwc []:2015/09/03(木) 23:41:00.21 ID:G+oloE/W - ありゃ、コンストラクタ忘れた
class base{ public: int m_val; base(int& i=0):m_val(i){;} virtual int func(int i=0){return i;} }; class add:public base{ public: add(int& i=0):base(i){;} int func(int i=0){return m_val+i;} }; class sub:public base{ public: sub(int& i=0):base(i){;} int func(int i=0){return m_val-i;} }; base *p,*q;//abstract factoryパターン int r;//メッセージクラス p=new add(21); r=p->func(7); q=new sub(r); r=q->func(7); intを任意のクラスにしたらなんか色々出来そうだろ
|