[過去ログ]
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1500329247/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
23: デフォルトの名無しさん [sage] 2017/07/21(金) 10:43:02.49 ID:YiUdVm2o 他言語では見たことが無いな 参照の仕組みが近いのはC#だと思うが右辺値参照の概念は無い static int X; static ref int M() { return ref X; } static void Main () { M() = 100;//「M()」実質の左辺値 ref int x = ref M();//「ref M()」実質の左辺値 ref int rx = ref x; rx++; Console.Write(M());//「M()」実質の右辺値 } http://mevius.5ch.net/test/read.cgi/tech/1500329247/23
24: デフォルトの名無しさん [sage] 2017/07/21(金) 11:42:16.76 ID:joLx1qFD 他言語では代入演算子でオブジェクトをコピーしたり まるでオブジェクトを基本型であるかのようにふるまわせる概念が無いからな なぜなら他言語にはGCが有るからね GCがあって、オブジェクトは常にnewして使うから 勝手にディープコピーされるとか、そういうことは考える必要がないね 逆にC++はGCが無いから・・・ もしC#で右辺値参照があり得るとしたらstructに関してだが C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから やっぱり要らないな http://mevius.5ch.net/test/read.cgi/tech/1500329247/24
25: デフォルトの名無しさん [sage] 2017/07/21(金) 11:52:40.57 ID:XYgV/slE GCがあるから委譲と複製を区別しなくて済むってのに違和感 http://mevius.5ch.net/test/read.cgi/tech/1500329247/25
26: デフォルトの名無しさん [] 2017/07/21(金) 12:22:05.32 ID:C+EZcupv 1==1 の結果が 2でも-1でもなく 1 だってのは 仕様書のどこに書いてありますか? http://mevius.5ch.net/test/read.cgi/tech/1500329247/26
27: デフォルトの名無しさん [sage] 2017/07/21(金) 12:25:57.68 ID:joLx1qFD 他言語は普通に代入などすれば、基本型はコピーでオブジェクトは委譲だ C++は普通に代入などすれば、基本型もオブジェクトもコピーだ で、メタプログラミングの観点から見て、何が起こるかということだな C++は無駄なディープコピーが発生しやすい仕様なのだわ C++もnewすれば他言語と同じになるが、GCが無いので常に有効ではない やはりナマポはクラスでラップして・・・って事になるので 適切にコピーなりmoveなり寿命管理してもらわないと破綻する http://mevius.5ch.net/test/read.cgi/tech/1500329247/27
28: デフォルトの名無しさん [sage] 2017/07/21(金) 12:37:14.45 ID:YiUdVm2o >>26 ほれ ISO/IEC 9899:2011 6.5.9p3 Each of the operators yields 1 if the specified relation is true and 0 if it is false. The result has type int. http://mevius.5ch.net/test/read.cgi/tech/1500329247/28
29: デフォルトの名無しさん [sage] 2017/07/21(金) 13:04:34.65 ID:C+EZcupv >>28 おっ サンキュー これC11っぽいけど、C89でもおんなじだよな? http://mevius.5ch.net/test/read.cgi/tech/1500329247/29
30: デフォルトの名無しさん [sage] 2017/07/21(金) 13:30:56.58 ID:YiUdVm2o >>29 残念ながら2011より前の規格は知らぬ http://mevius.5ch.net/test/read.cgi/tech/1500329247/30
31: デフォルトの名無しさん [sage] 2017/07/21(金) 13:49:35.62 ID:JOiJxqKd C99は同じ節の同じ段落にある。 C89は不明だが、もしそんな基本部分が変化してたら大騒ぎになってたはずなので同じだろう。 http://mevius.5ch.net/test/read.cgi/tech/1500329247/31
32: デフォルトの名無しさん [sage] 2017/07/21(金) 13:54:13.46 ID:YiUdVm2o >>29 89と内容等価ということになっているANSI/ISO C90を入手した 6.3.9(==,!=)は6.3.8(大小比較)を参照していてそこには yields 1 if the specified relation is true とある つまり1になる http://mevius.5ch.net/test/read.cgi/tech/1500329247/32
33: デフォルトの名無しさん [sage] 2017/07/21(金) 15:17:08.56 ID:P7F/0MU3 >>9 横からだけど、すごく分かりやすかった。ありがたい。 http://mevius.5ch.net/test/read.cgi/tech/1500329247/33
34: デフォルトの名無しさん [sage] 2017/07/21(金) 19:19:00.46 ID:6hIUsyMM >>24 GC 関係ないわな > 勝手にディープコピーされるとか、そういうことは考える必要がないね > C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから なぜか自信満々で頓珍漢な思い込みを披露されてもな http://mevius.5ch.net/test/read.cgi/tech/1500329247/34
35: デフォルトの名無しさん [sage] 2017/07/22(土) 01:20:33.15 ID:oqulLxLp into sokuに1か2以外を入力したとき1か2を入力されるまでループさせるのをやってみたいんですが scanf("%d", &soku); while (soku != (1 || 2)) { printf("もう一度入力してください。\n希望する 1\n希望しない 2\n"); scanf("%d", &soku); } こう書くと2を入力してもループしてしまいます。 1か2が入力されたらループを抜けるにはどう書けばいいんでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1500329247/35
36: 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/22(土) 01:34:09.94 ID:Scnyb+6Y soku != 1 && soku != 2 http://mevius.5ch.net/test/read.cgi/tech/1500329247/36
37: デフォルトの名無しさん [sage] 2017/07/22(土) 01:36:10.92 ID:oqulLxLp >>36 できました。そういう風に書くんですね。ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1500329247/37
38: デフォルトの名無しさん [sage] 2017/07/22(土) 01:38:48.73 ID:aL/Y+CP+ ()が強いので1||2が先に計算されて1になってしまう。 http://mevius.5ch.net/test/read.cgi/tech/1500329247/38
39: デフォルトの名無しさん [sage] 2017/07/22(土) 01:40:28.07 ID:ewNbHc5x !(soku == 1 || soku == 2) (1 または 2 )ではない ⇒ soku != 1 && soku != 2 1ではない かつ 2ではない http://mevius.5ch.net/test/read.cgi/tech/1500329247/39
40: デフォルトの名無しさん [sage] 2017/07/22(土) 01:47:45.17 ID:oqulLxLp いろんな書き方もできるんですね! 勉強になります。ありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1500329247/40
41: デフォルトの名無しさん [sage] 2017/07/22(土) 06:19:41.71 ID:RRuLA+SK C++1zでかっこよく書けるようになる。 そう思っていた時期がありました http://mevius.5ch.net/test/read.cgi/tech/1500329247/41
42: はちみつ餃子 ◆8X2XSCHEME [sage] 2017/07/22(土) 07:13:43.26 ID:Sw3YC1YO >>39-40 この理屈はド・モルガンの定理って名前がついてるやつ。 http://mevius.5ch.net/test/read.cgi/tech/1500329247/42
43: デフォルトの名無しさん [sage] 2017/07/22(土) 14:34:43.25 ID:9V10kE5p >>38 なんで3じゃなく1になるの? http://mevius.5ch.net/test/read.cgi/tech/1500329247/43
44: デフォルトの名無しさん [sage] 2017/07/22(土) 14:51:10.38 ID:ewNbHc5x >>43 ビット演算のor ではなく、真偽判定の論理和なので 1の真偽を求めて真 ⇒ 1 (2の真偽を求めて真 ⇒ 1 : or 結合のショートサーキットで判定しなけど便宜的に) こうなる http://mevius.5ch.net/test/read.cgi/tech/1500329247/44
45: デフォルトの名無しさん [sage] 2017/07/22(土) 14:51:24.55 ID:o3Mfi2ju 1|2なら3 1||2は1 http://mevius.5ch.net/test/read.cgi/tech/1500329247/45
46: デフォルトの名無しさん [sage] 2017/07/22(土) 15:12:08.99 ID:9V10kE5p 難しいのね… http://mevius.5ch.net/test/read.cgi/tech/1500329247/46
47: ◆QZaw55cn4c [sage] 2017/07/22(土) 18:27:01.28 ID:Yr9CVNZl >>42 いつも不思議に思うのだが、このド・モルガンは議論のスタートとなる公理なの? それとも、なんらかの公理から導かれる定理なの? 教科書の最初の方でカップハットをやらされる度に思う疑問です http://mevius.5ch.net/test/read.cgi/tech/1500329247/47
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 955 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s