次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part134
http://mevius.5ch.net/test/read.cgi/tech/1516406742/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1509780815/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
C++相談室 part135
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5fcb-q1Nq)
2018/03/31(土) 20:20:06.25ID:o3PNwIlC081片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-90Yi)
2018/04/06(金) 22:00:38.96ID:eB6IhESGd 物理学的に考えると、魚眼は屈折率の差から発生する現象だから、モデラーの物体に屈折率を設定するだけでいい。
82片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-90Yi)
2018/04/06(金) 22:05:13.65ID:eB6IhESGd カメラの特性で、レンズの広角が設定できればそれに越したことはないが。
83片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-90Yi)
2018/04/06(金) 22:10:52.66ID:eB6IhESGd 「広角 DirectX」で検索。
https://msdn.microsoft.com/ja-jp/magazine/dn745869.aspx
https://msdn.microsoft.com/ja-jp/magazine/dn745869.aspx
84デフォルトの名無しさん (ブーイモ MMea-VY9m)
2018/04/06(金) 22:14:45.90ID:Qe7eZ8vzM85デフォルトの名無しさん (アウアウオー Sa72-RtkZ)
2018/04/06(金) 22:23:28.39ID:RWHjeoGDa86デフォルトの名無しさん (ワッチョイ 1a7e-PJKe)
2018/04/06(金) 22:30:22.55ID:gYiRH0WM0 ゲーム作ろうと思っても大体はゲームエンジン作り始めて途中で飽きてやめる
87片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-90Yi)
2018/04/06(金) 22:30:40.49ID:eB6IhESGd CGもオブジェクト指向になっているから、撮影スタジオで実際に物体やカメラの位置を決めるのと同じように、シーンを構築すれば、それが映像になる。
88片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-90Yi)
2018/04/06(金) 22:57:17.05ID:eB6IhESGd ニュースセンターで使われるような、再現CGを自由に作れるようになったら、引っ張りダコだよ。
89片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdea-90Yi)
2018/04/06(金) 23:06:06.99ID:eB6IhESGd そうなったら、映像クリエイターになって仕事を請け負って独立できるぞ。プログラマーよりも働き甲斐があるかもしれん。
90デフォルトの名無しさん (ワッチョイ 1a7e-PJKe)
2018/04/06(金) 23:07:50.12ID:gYiRH0WM0 どっちも薄給
91デフォルトの名無しさん (ワッチョイ 6db3-psu8)
2018/04/07(土) 00:36:31.30ID:Y5tUUVb30 やたら伸びてると思ったら1人あたりのレス数多すぎだろ(しかも知らんことに口出し過ぎ
fbxsdkは昔ちょっとしか触ってないが、多分そのVSの3Dシーン作成ってのは3Dのモデルやシーンを.fbxに書き出すプロジェクトじゃね?
そういうのは多分Maya使った方が早いしfbxsdkはどっちにしても要る
あとDirect3D使うならそっちのスレ行ってくれ
fbxsdkは昔ちょっとしか触ってないが、多分そのVSの3Dシーン作成ってのは3Dのモデルやシーンを.fbxに書き出すプロジェクトじゃね?
そういうのは多分Maya使った方が早いしfbxsdkはどっちにしても要る
あとDirect3D使うならそっちのスレ行ってくれ
92デフォルトの名無しさん (アウアウカー Sa05-ysxi)
2018/04/08(日) 02:00:13.10ID:xND6FkKma C++で用意されているキャストと
cのi=(int)j みたいなキャストの違いがよくわからない
cのi=(int)j みたいなキャストの違いがよくわからない
93デフォルトの名無しさん (ワッチョイ ca34-glfZ)
2018/04/08(日) 02:09:06.48ID:+gqqNGFK0 static_cast … 無理のない互換性のある変換。
reinterpret_cast … int から void* 等への強制変換 c の ()キャストと同じ。
const_cast … const 付きから const を無くしたりまたはその逆の変換。
dynamic_cast … 実行時型情報を使って実行時に型情報で互換性を見比べながらの変換。実行時型情報とのリンクが必須。
reinterpret_cast … int から void* 等への強制変換 c の ()キャストと同じ。
const_cast … const 付きから const を無くしたりまたはその逆の変換。
dynamic_cast … 実行時型情報を使って実行時に型情報で互換性を見比べながらの変換。実行時型情報とのリンクが必須。
94はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fe6f-vJpg)
2018/04/08(日) 03:14:37.94ID:RvzgDq0H0 >>92
C スタイルのキャストは dynamic_cast 以外の C++ スタイルキャストを兼ね備えている。
安全なキャストも危険なキャストも見た目にわかんないから、
うっかり危険なキャストをしないようにカテゴリ分けしたやつを使った方がいいなって話。
reinterpret_cast や const_cast がどうしても必要な状況になったら、
それはそのプログラムが悪いデザインだというサインだ。
(デバイスドライバとか OS とかの低水準プログラムだと仕方なく使う機会は多いかもしれないけど)
C スタイルのキャストは dynamic_cast 以外の C++ スタイルキャストを兼ね備えている。
安全なキャストも危険なキャストも見た目にわかんないから、
うっかり危険なキャストをしないようにカテゴリ分けしたやつを使った方がいいなって話。
reinterpret_cast や const_cast がどうしても必要な状況になったら、
それはそのプログラムが悪いデザインだというサインだ。
(デバイスドライバとか OS とかの低水準プログラムだと仕方なく使う機会は多いかもしれないけど)
95デフォルトの名無しさん (ワッチョイ 2d93-SKFW)
2018/04/08(日) 06:15:21.60ID:fQMOYFpe0 『プログラミング言語C++』第4版のどこだったかに、
「危険なキャストを行っているソース箇所が目立つように
reinterpret_cast<型> のような長い綴りで見た目もスマートでない
キーワードを選んで導入した」みたいなことが書いてあったな。
「危険なキャストを行っているソース箇所が目立つように
reinterpret_cast<型> のような長い綴りで見た目もスマートでない
キーワードを選んで導入した」みたいなことが書いてあったな。
2018/04/08(日) 11:13:04.50ID:NQAA1W7E0
すいませんchar str[1000]に格納されてるこの文字列を、str2[0][]=64 str2[1][]=9 という感じで上手くデータだけ取り出す方法は無いでしょうか
http://i.imgur.com/MMYajmf.jpg
http://i.imgur.com/MMYajmf.jpg
97デフォルトの名無しさん (アウアウカー Sa05-ysxi)
2018/04/08(日) 11:13:28.36ID:CEYO7YYHa ありがとうございます
基本的には見た目の話なんですね
基本的には見た目の話なんですね
98デフォルトの名無しさん (ワッチョイ 2d7f-vJpg)
2018/04/08(日) 11:44:19.45ID:rArjzNgz0 C形式のキャストは絶対に使うなって事だよ
99デフォルトの名無しさん (ワッチョイ 959b-Q2Cy)
2018/04/08(日) 11:44:37.07ID:ySnMa92f0100デフォルトの名無しさん (ワッチョイ 2d04-43s8)
2018/04/08(日) 11:44:50.16ID:wX43tNlZ0101デフォルトの名無しさん
2018/04/08(日) 12:07:31.24ID:NQAA1W7E0102デフォルトの名無しさん
2018/04/08(日) 12:17:01.56 danger_cast は言い過ぎとして、unsafe_cast くらいにして欲しかった
103デフォルトの名無しさん
2018/04/08(日) 12:19:03.34 hansode_tampan_cast
104デフォルトの名無しさん
2018/04/08(日) 12:34:24.71 >>96
・str2はポインタの配列、idxはstr2の添字とする
・1文字ずつループして以下を処理
「=」が現れるまでまで読み飛ばす
「 」「"」以外の文字が現れたらstr2[idx++]にその文字へのポインタ格納
・「;」までスキップして¥0に置き換え
・str2はポインタの配列、idxはstr2の添字とする
・1文字ずつループして以下を処理
「=」が現れるまでまで読み飛ばす
「 」「"」以外の文字が現れたらstr2[idx++]にその文字へのポインタ格納
・「;」までスキップして¥0に置き換え
105デフォルトの名無しさん
2018/04/08(日) 12:36:55.36ID:NQAA1W7E0 >>104
なんかできそう!やってみますありがとうございます!
なんかできそう!やってみますありがとうございます!
106デフォルトの名無しさん (スッップ Sdea-+9ji)
2018/04/08(日) 13:00:09.46ID:CRecF1KTd reinterpret_cast をポインタ以外に使うのはない
107デフォルトの名無しさん (ブーイモ MM39-0MDt)
2018/04/08(日) 13:13:04.30ID:IdsKnaEwM c向けのライブラリをc++で開発するときは躊躇なく使うかな>reinterpret_cast
あとはargとかparamとかいう名前の引数に好きなデータを突っ込みたいときとか。
あとはargとかparamとかいう名前の引数に好きなデータを突っ込みたいときとか。
108デフォルトの名無しさん
2018/04/08(日) 13:57:50.07 reinterpret_castはゼロオーバーヘッド?
109デフォルトの名無しさん (ワッチョイ 2d04-43s8)
2018/04/08(日) 13:59:32.17ID:wX43tNlZ0 コンパイラさんが解釈かえるだけだから。新しくなにも確保しない。
110デフォルトの名無しさん (ワッチョイ 1a7e-PJKe)
2018/04/08(日) 14:55:18.41ID:XIh7sWbQ0 バイト単位の処理をするときに必ず出てくるだろ
111デフォルトの名無しさん (ワッチョイ 7923-Q1NZ)
2018/04/08(日) 15:41:01.45ID:drN9+cfC0 >>107の「あとは」以下の用例多いよね。
スレッドのエントリポイントの引数だの libcurl のコールバックの引数だのそんなので
スレッドのエントリポイントの引数だの libcurl のコールバックの引数だのそんなので
112デフォルトの名無しさん (ワッチョイ cabd-X2wr)
2018/04/08(日) 17:17:06.93ID:9PMBUXuM0 バリアント型が無いために野蛮なキャストが生きながらえるんじゃ
さっさとリフレクションとプロパティーとバリアント型を規格に盛り込みなさい
さっさとリフレクションとプロパティーとバリアント型を規格に盛り込みなさい
113デフォルトの名無しさん (ワッチョイ 1a7e-PJKe)
2018/04/08(日) 17:26:02.77ID:XIh7sWbQ0 >バリアント型が無いために野蛮なキャストが生きながらえるんじゃ
誰も殺そうとしていない
誰も殺そうとしていない
114デフォルトの名無しさん (ワッチョイ 3e9f-4k8A)
2018/04/08(日) 17:48:08.38ID:yoJPjKyN0 Windowsとかのメッセージのパラメータなんて、
キャストしないとなにもできないけどな
キャストしないとなにもできないけどな
115デフォルトの名無しさん (ドコグロ MM72-503E)
2018/04/08(日) 20:53:29.38ID:B7amW+qmM116デフォルトの名無しさん (ワッチョイ 4a03-vJpg)
2018/04/08(日) 21:04:08.52ID:aevyI+Fp0 C++++でしょ
ill-formedだけど
それでこそアホどもに相応しい
ill-formedだけど
それでこそアホどもに相応しい
117デフォルトの名無しさん (オイコラミネオ MMa1-RVCH)
2018/04/09(月) 11:03:03.24ID:Ecf+pvidM static_castは長いから、ただのcastにしてほしい
その方がreinterpret_castのunsafe感が高まる
その方がreinterpret_castのunsafe感が高まる
118デフォルトの名無しさん (アウアウカー Sa05-9DAQ)
2018/04/09(月) 11:19:04.00ID:ClY8G0uJa デフォルトをstatic_castで解釈しないのはなぜ?
119はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fe6f-vJpg)
2018/04/09(月) 11:23:19.28ID:fbTUuQs/0 >>117
#define cast static_cast
#define cast static_cast
120デフォルトの名無しさん (ワッチョイ 1a7e-PJKe)
2018/04/09(月) 15:59:42.60ID:AbJVhraD0 >>118
互換性
互換性
121デフォルトの名無しさん (ワッチョイ ca34-glfZ)
2018/04/09(月) 22:38:54.59ID:J7f8Y+mC0 >>118
互換性には2種類ある
クラスポインタ変換の場合を例に挙げると
一つは拡張クラスからベースクラスへのアップキャスト
こちらはキャストの明示は必要ない暗黙の型変換が行える
もう一つはベースクラスから拡張クラスへのダウンキャスト
こちらはベースから拡張クラスへの変換に確証が得られている
わけではないのでstatic_castを用いて変換してやらないといけない
このときdynamic_castを使うと実行時に型をチェックしてくれる
のでよりstrictな変換を行わせることができる
できるといってもエラーを発生させるかさせないかの違いだけだけど
互換性には2種類ある
クラスポインタ変換の場合を例に挙げると
一つは拡張クラスからベースクラスへのアップキャスト
こちらはキャストの明示は必要ない暗黙の型変換が行える
もう一つはベースクラスから拡張クラスへのダウンキャスト
こちらはベースから拡張クラスへの変換に確証が得られている
わけではないのでstatic_castを用いて変換してやらないといけない
このときdynamic_castを使うと実行時に型をチェックしてくれる
のでよりstrictな変換を行わせることができる
できるといってもエラーを発生させるかさせないかの違いだけだけど
122デフォルトの名無しさん (ワッチョイ 898a-b3Lf)
2018/04/10(火) 00:58:36.89ID:KTsfJjko0 >>118
そら互換性のためでしょ
そら互換性のためでしょ
123デフォルトの名無しさん (ワッチョイ a102-vJpg)
2018/04/10(火) 05:22:39.46ID:AY1cx8Cu0124デフォルトの名無しさん
2018/04/10(火) 09:48:42.17ID:PdcJoG7U0 コンソールプログラムのwhile()ループで1文字入力したらループを抜けるときに使うやつって何でしたっけ・・
while(!getchar())だと文字を受けるまで処理がとまってしまいますが、止まらないやつがあったと思うのですが
while(!getchar())だと文字を受けるまで処理がとまってしまいますが、止まらないやつがあったと思うのですが
125デフォルトの名無しさん (ワッチョイ a102-vJpg)
2018/04/10(火) 10:20:00.71ID:AY1cx8Cu0 標準に「止まらないキースキャン」はない
conio.hのgetch()や
ioctl.hのioctl()あるいは
windows.hのGetKeyState()のような
処理系依存の関数が必要
conio.hのgetch()や
ioctl.hのioctl()あるいは
windows.hのGetKeyState()のような
処理系依存の関数が必要
126デフォルトの名無しさん (ワッチョイ ca34-glfZ)
2018/04/10(火) 10:30:44.25ID:h0HOed+p0 linuxならファイルディスクリプタにselectが使えるけど
windowsの場合はファイルディスクリプタとソケットがまた別物だし
windowsの場合はファイルディスクリプタとソケットがまた別物だし
127デフォルトの名無しさん
2018/04/10(火) 11:04:35.34ID:PdcJoG7U0128はちみつ餃子 ◆8X2XSCHEME (ワッチョイ fe6f-vJpg)
2018/04/10(火) 11:10:44.06ID:141aKXKv0 それって結局はビジーループの一種じゃね?
やりたいことにもよるけど、基本的にはあんまりよくない方法だと思う。
やりたいことにもよるけど、基本的にはあんまりよくない方法だと思う。
129デフォルトの名無しさん
2018/04/11(水) 08:10:31.14ID:T4s6uHOl0130デフォルトの名無しさん (ワッチョイ ca34-glfZ)
2018/04/11(水) 09:27:42.36ID:WgIjYyd40 ビジーループにSleep挿入して100msづつ位休む感じでアイドルに見せ掛けるハッタリを噛ます
131デフォルトの名無しさん (ワッチョイ a102-vJpg)
2018/04/11(水) 12:28:20.43ID:nyTWTQlG0 はったりじゃないでしょ
それは合格
それは合格
132デフォルトの名無しさん (ワッチョイ ffbd-zmT2)
2018/04/14(土) 12:01:39.22ID:bHi1VZVu0 低優先度タスクからのプリエンプションが無いOSでSleep(100 ms)したら
優先度関係無く他タスクに100 msを超えて待たされてしまうかもしれない
Sleep()は実行権放棄の呪文としては強力すぐる…
優先度関係無く他タスクに100 msを超えて待たされてしまうかもしれない
Sleep()は実行権放棄の呪文としては強力すぐる…
133デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/14(土) 13:25:03.37ID:RVvtBgPf0 DOS並にコンソールがクソな環境も珍しいよな
unixベースのシェルに比べるとこんな貧相なものがよく生き残ってこれたとおもふ
unixベースのシェルに比べるとこんな貧相なものがよく生き残ってこれたとおもふ
134デフォルトの名無しさん (ワッチョイ a304-x9ai)
2018/04/14(土) 14:27:12.94ID:AqyGMwU/0 >>132
ウィンドウズの話だけど、threadヘッダのスリープは起こし忘れが少ない気がする。
ウィンドウズの話だけど、threadヘッダのスリープは起こし忘れが少ない気がする。
135デフォルトの名無しさん (ワッチョイ 7f4c-IyeK)
2018/04/14(土) 22:00:06.17ID:7AzbU2hj0 未だにGUIがまともにならないLinuxも珍しいよな
136デフォルトの名無しさん (ワッチョイ cf81-ycE0)
2018/04/14(土) 22:16:23.39ID:B3QB9Fpb0 >>135
君に期待しても良いのかな?
君に期待しても良いのかな?
137デフォルトの名無しさん (ワッチョイ bf7e-ULsc)
2018/04/14(土) 22:26:38.67ID:jn5/AQ8F0 誰かがデザイナ雇わないとな
138デフォルトの名無しさん (ワッチョイ 1302-ycE0)
2018/04/14(土) 22:31:21.78ID:Tt8LTURP0 まともを定義せよ
139デフォルトの名無しさん (ワッチョイ bf7e-ULsc)
2018/04/14(土) 22:47:45.04ID:jn5/AQ8F0 美しいGUIか使用上十分なGUIか
140デフォルトの名無しさん (ワッチョイ ff68-LJHW)
2018/04/14(土) 23:04:06.39ID:WAEnZz2X0 Class A
{
void A(B* &b)
{
}
};
{
void A(B* &b)
{
}
};
141デフォルトの名無しさん (ワッチョイ cf81-ycE0)
2018/04/14(土) 23:06:11.46ID:B3QB9Fpb0 毎日使う上では美しさはいらない。シンプルで頼む
142デフォルトの名無しさん (ワッチョイ ff68-LJHW)
2018/04/14(土) 23:08:51.81ID:WAEnZz2X0 済みません、途中送信してしまいました・・・
Class A
{
B* _b;
void A(B* &b)
{
_b = b;
_b = new B();
}
};
B* b;
A* a = new A(b);
b←newされてない・・・
クラスAのコンストラクタでクラスBのインスタンスを受け取り
newで新たなインスタンスを作成したうえで返そうと思います。
しかし上記のようなプログラムを作成してもインスタンスbは
newされてませんでした。
どうしたらbをnewしたうえで返すことができるようになるでしょうか?
Class A
{
B* _b;
void A(B* &b)
{
_b = b;
_b = new B();
}
};
B* b;
A* a = new A(b);
b←newされてない・・・
クラスAのコンストラクタでクラスBのインスタンスを受け取り
newで新たなインスタンスを作成したうえで返そうと思います。
しかし上記のようなプログラムを作成してもインスタンスbは
newされてませんでした。
どうしたらbをnewしたうえで返すことができるようになるでしょうか?
143デフォルトの名無しさん (ワッチョイ 839b-qSfG)
2018/04/14(土) 23:15:39.02ID:EkNosKh20 void A(B** b)
{
*b = new B();
}
でいいんでないの
{
*b = new B();
}
でいいんでないの
144デフォルトの名無しさん (アウアウカー Sa47-to91)
2018/04/14(土) 23:23:21.44ID:9kNArSDya 馬鹿だから分からないんだが教えて
インスタンス渡してからnewするのはなぜ?
ポインタを参照にする意味とは?
インスタンス渡してからnewするのはなぜ?
ポインタを参照にする意味とは?
145デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/15(日) 00:33:02.73ID:/OvgYAab0 >>142
> void A(B* &b)
> {
> _b = b;
> _b = new B();
> }
下の方は b = new B(); としたかったんじゃないのか
> void A(B* &b)
> {
> _b = b;
> _b = new B();
> }
下の方は b = new B(); としたかったんじゃないのか
146デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 00:44:36.47ID:b/ktaKN+0 A(B*&b) {
b=new B();
_b=b;
}
頭悪いだろオマエラw
b=new B();
_b=b;
}
頭悪いだろオマエラw
147デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 00:52:36.30ID:b/ktaKN+0 A(B*&b){_b=b=new B();}
もしくは一発で書けば何の問題もおこらんよ
もしくは一発で書けば何の問題もおこらんよ
148デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/15(日) 00:57:54.63ID:/OvgYAab0 受け取ったインスタンスを全く使ってないがそれが意図した動作なのか
149デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:00:18.78ID:b/ktaKN+0 参照オブジェクトの概念がよくわかってない
学び直せと言いたい
学び直せと言いたい
150デフォルトの名無しさん (ワッチョイ 7fcb-1i0h)
2018/04/15(日) 01:04:57.02ID:VAOccv/70 >>148
インスタンスなんて受け取ってないぞ
インスタンスなんて受け取ってないぞ
151デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/15(日) 01:09:03.26ID:/OvgYAab0152デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:19:33.61ID:b/ktaKN+0 それにしてもbをnewするとかイミフ
何もしてないじゃんw
何もしてないじゃんw
153デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:22:46.36ID:b/ktaKN+0 古いインスタンスを_bに格納して新しいインスタンスをbに返したいのか
新しいインスタンスを作成してbと_b両方に返したいのか
どっちなんだよ
新しいインスタンスを作成してbと_b両方に返したいのか
どっちなんだよ
154デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/15(日) 01:22:49.52ID:/OvgYAab0155デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:30:17.78ID:b/ktaKN+0 _b=new B() は見当たるが
b=new B() ←こんな記述は見当たらないぞ
嘘もたいがいにしとけや
b=new B() ←こんな記述は見当たらないぞ
嘘もたいがいにしとけや
156デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/15(日) 01:39:29.12ID:b/ktaKN+0 >>142
コイツのソース見る限りbに対しては何もしてないでしょ
コイツのソース見る限りbに対しては何もしてないでしょ
157デフォルトの名無しさん (スプッッ Sd1f-QADq)
2018/04/15(日) 03:35:09.27ID:mYZtkoVNd158デフォルトの名無しさん
2018/04/15(日) 06:03:36.65 >>142
> void A(B* &b)
> {
> _b = b;
> _b = new B();
> }
void A(B* &b)
{
B* new_b = new B();
b = new_b;
_b = new_b;
}
こういうのは愚直に書けばええんや
> void A(B* &b)
> {
> _b = b;
> _b = new B();
> }
void A(B* &b)
{
B* new_b = new B();
b = new_b;
_b = new_b;
}
こういうのは愚直に書けばええんや
159デフォルトの名無しさん (ワッチョイ a393-R+MU)
2018/04/15(日) 08:25:34.99ID:IUBKEb9a0 AのコンストラクタにBへのポインタのポインタだか参照だかを渡さなくても
Bへのポインタと関係ないAのコンストラクタ、と
A内部のBメンバへのポインタを返すゲッタ、との
組み合わせにする方が素直でねぇか?
class A
{
B* _b;
public:
A() {_b = new B();}
B* ptr_b() const {return _b;}
};
int main(void)
{
A* a = new A();
B* b = a->ptr_b();
return 0;
}
別に確保した「Bを格納すべき領域へのポインタ」を受け取って、
Aの初期化時にBの配置newを行わせたい、という意図かもしれないけど、
元の質問から想像を広げすぎてるよね。
Bへのポインタと関係ないAのコンストラクタ、と
A内部のBメンバへのポインタを返すゲッタ、との
組み合わせにする方が素直でねぇか?
class A
{
B* _b;
public:
A() {_b = new B();}
B* ptr_b() const {return _b;}
};
int main(void)
{
A* a = new A();
B* b = a->ptr_b();
return 0;
}
別に確保した「Bを格納すべき領域へのポインタ」を受け取って、
Aの初期化時にBの配置newを行わせたい、という意図かもしれないけど、
元の質問から想像を広げすぎてるよね。
160デフォルトの名無しさん (ワッチョイ 6fe7-8Ez4)
2018/04/15(日) 10:01:16.50ID:6WpjLuna0 Aが_bをdeleteするために管理するだけのクラスだとしたらスマポ使えという話になる
161デフォルトの名無しさん (ワッチョイ 638b-1zQp)
2018/04/15(日) 10:57:43.04ID:Yi/sDJN50162142 (ワッチョイ ff68-LJHW)
2018/04/15(日) 11:01:19.87ID:GeT3puOg0 舌足らずでもうしわけありませんでした・・・
クラスBのインスタンスをクラスAで処理していくためにコンストラクタでクラスBの
インスタンスを参照受け取りする仕様にしました。
大半のケースではそのまま処理して終わり、なのですが
まれに受け取ったクラスBのインスタンスをnewし直す必要がありまして
その際受け取ったクラスAのメンバ変数 _b をnewしても受け取り元のインスタンスを
newできないことに悩んでいました
ただオブジェクト指向の観点から見るとあまり美しいプログラミングスタイルでは無いのかもしれませんね。
クラスBのインスタンスはクラスA内部で完全隔離処理するようにした方がいいのかもしれません
クラスBのインスタンスをクラスAで処理していくためにコンストラクタでクラスBの
インスタンスを参照受け取りする仕様にしました。
大半のケースではそのまま処理して終わり、なのですが
まれに受け取ったクラスBのインスタンスをnewし直す必要がありまして
その際受け取ったクラスAのメンバ変数 _b をnewしても受け取り元のインスタンスを
newできないことに悩んでいました
ただオブジェクト指向の観点から見るとあまり美しいプログラミングスタイルでは無いのかもしれませんね。
クラスBのインスタンスはクラスA内部で完全隔離処理するようにした方がいいのかもしれません
163デフォルトの名無しさん (ワッチョイ 6fe7-8Ez4)
2018/04/15(日) 11:19:51.96ID:6WpjLuna0 BをAしか使わないならAの中に隔離する
他でも使う必要があって、Aの外部でBの寿命を管理してるなら、AにrefreshB()みたいなBをnewし直した時に渡し直す関数を用意する
でいいんじゃないの
本当にBをnewし直す(メモリ上再配置する)必要があるならだけど
実はB自体にreset()用意するだけで済む話のように見える
他でも使う必要があって、Aの外部でBの寿命を管理してるなら、AにrefreshB()みたいなBをnewし直した時に渡し直す関数を用意する
でいいんじゃないの
本当にBをnewし直す(メモリ上再配置する)必要があるならだけど
実はB自体にreset()用意するだけで済む話のように見える
164デフォルトの名無しさん (アウアウウー Sae7-ycE0)
2018/04/15(日) 12:55:30.01ID:eVQUY7wra c++じゃポインタのこともインスタンスっていうのか
165デフォルトの名無しさん (ブーイモ MMa7-ffqK)
2018/04/15(日) 14:39:37.81ID:rsq+XQj0M >>164
2レス前も読めないのか
2レス前も読めないのか
166デフォルトの名無しさん (アウアウウー Sae7-LJHW)
2018/04/15(日) 18:30:19.93ID:51qZxk5sa 理解不足を言い換えてミスしてない風にするのが流行ってるのかな
167デフォルトの名無しさん (ワッチョイ 832d-to91)
2018/04/15(日) 22:24:39.46ID:vR7s+ZvT0 ミスって理解不足からくるじゃん
168デフォルトの名無しさん (アウアウオー Sadf-vcwQ)
2018/04/15(日) 23:39:26.36ID:Mp1WrgTGa 質問あるのですが、
同一PC内の画面機能と処理機能のプロセス間通信はどうやるのが便利ですか?
画面更新速度は100ms周期くらいです。
共有メモリがいいと思ったんですが、ソケット推してる人がいてもやもや
アクセス速度とかNICの通信量とか考えると共有メモリ一択な気がするんですが、どうなんでしょうか?
パイプとマップドメモリはメリット無いので考えていません。
同一PC内の画面機能と処理機能のプロセス間通信はどうやるのが便利ですか?
画面更新速度は100ms周期くらいです。
共有メモリがいいと思ったんですが、ソケット推してる人がいてもやもや
アクセス速度とかNICの通信量とか考えると共有メモリ一択な気がするんですが、どうなんでしょうか?
パイプとマップドメモリはメリット無いので考えていません。
169デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/15(日) 23:42:01.12ID:sXJBpbWg0 何を重視するか次第
170デフォルトの名無しさん (ワッチョイ 738a-Z7Iu)
2018/04/15(日) 23:43:30.47ID:qZPDSYA20 共有メモリ=マップドファイルのファイル無しやで
171デフォルトの名無しさん (アウアウウー Sae7-LJHW)
2018/04/15(日) 23:43:31.62ID:51qZxk5sa そもそも別にする理由は何?
どんなものを想定してるの?
プロセスは常に1対1なの
どんなものを想定してるの?
プロセスは常に1対1なの
172デフォルトの名無しさん (ワッチョイ a350-96DA)
2018/04/15(日) 23:44:26.87ID:sXJBpbWg0 OSは?
173デフォルトの名無しさん (アウアウウー Sae7-LJHW)
2018/04/15(日) 23:47:06.30ID:51qZxk5sa 同一PC内なのにソケットとNICの通信量って何か関係あるの?
174はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f6f-ycE0)
2018/04/15(日) 23:53:07.49ID:aQ0USPFo0175デフォルトの名無しさん (ワッチョイ 3323-QADq)
2018/04/16(月) 00:28:23.74ID:TXxoP4/a0 unix domain ソケットがお手軽で便利だけど
時代に合わせてパイプか tcp かなあ
Windows でしか使わないならならcom使うのも簡便
時代に合わせてパイプか tcp かなあ
Windows でしか使わないならならcom使うのも簡便
176デフォルトの名無しさん
2018/04/16(月) 01:39:01.50 共有メモリだとリングバッファとか排他とか自分で作り込まなきゃいけんやろ
ソケットならそのへん考えなくてええやん
ソケットならそのへん考えなくてええやん
177デフォルトの名無しさん (ワッチョイ ff34-ecZa)
2018/04/16(月) 02:21:40.05ID:kGNRvKds0 windowsはファイルマッピングオブジェクトでしょ
パイプでさえSYNCHRONIZE特権指定できないゴミなんだから
パイプでさえSYNCHRONIZE特権指定できないゴミなんだから
178デフォルトの名無しさん (ワッチョイ bf7e-ULsc)
2018/04/16(月) 03:12:35.45ID:HsbFINqV0 標準入出力最強説
179デフォルトの名無しさん (ドコグロ MMdf-fgqO)
2018/04/16(月) 06:43:39.39ID:kK8liqj6M unix domain socket なんて使ったことないな
名前空間としてファイルの指定がいるし将来違うマシン間で動作させる時に変更量が多いしtcp/udpに比べてデメリット多くね?
名前空間としてファイルの指定がいるし将来違うマシン間で動作させる時に変更量が多いしtcp/udpに比べてデメリット多くね?
180デフォルトの名無しさん (アウアウカー Sa47-vcwQ)
2018/04/16(月) 07:06:03.32ID:irvwqMpDa >>173,174
共有メモリは例えば/dev/shmのRAM領域にあるメモリマップですよね
同一PC内のソケットのボーレートってほぼクロック数なんですか?
同一PC内の通信であったとしてもネットワークドライバの実装するプロトコルスタックを経由してしまうので、
その分のオーバーヘッドの分だけ速度が落ちる、という解釈ですが
共有メモリは例えば/dev/shmのRAM領域にあるメモリマップですよね
同一PC内のソケットのボーレートってほぼクロック数なんですか?
同一PC内の通信であったとしてもネットワークドライバの実装するプロトコルスタックを経由してしまうので、
その分のオーバーヘッドの分だけ速度が落ちる、という解釈ですが
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 橘こぉた来いや!!!
- 【悲報】ジャップ、日中戦争に賛成が5割弱...軍歌の音が聞こえる... [856698234]
- 隣の部屋のデブがこっちにまで聞こえる声量でアクビするのがストレスなんだけどマジで死んでくれないかな
- 【乞食速報】プロクオリティ ビーフカレー 96食 4262円 [268244553]
- 【悲報】小泉防衛大臣、中国のレーダー照射事件をNATO事務総長に報告 [834922174]
- 【すこん部🏡】白上フブキ🦊配信中❗【ホロライブ▶】
