[過去ログ] 【初心者歓迎】C/C++室 Ver.101【環境依存OK】 [無断転載禁止]©2ch.net (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
23: デフォルトの名無しさん [sage] 2017/07/21(金) 10:43:02.49 ID:YiUdVm2o(1/4) AAS
他言語では見たことが無いな
参照の仕組みが近いのは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()」実質の右辺値
}
24
(1): デフォルトの名無しさん [sage] 2017/07/21(金) 11:42:16.76 ID:joLx1qFD(4/5) AAS
他言語では代入演算子でオブジェクトをコピーしたり
まるでオブジェクトを基本型であるかのようにふるまわせる概念が無いからな
なぜなら他言語にはGCが有るからね
GCがあって、オブジェクトは常にnewして使うから
勝手にディープコピーされるとか、そういうことは考える必要がないね
逆にC++はGCが無いから・・・

もしC#で右辺値参照があり得るとしたらstructに関してだが
C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから
やっぱり要らないな
25: デフォルトの名無しさん [sage] 2017/07/21(金) 11:52:40.57 ID:XYgV/slE(1) AAS
GCがあるから委譲と複製を区別しなくて済むってのに違和感
26
(1): デフォルトの名無しさん [] 2017/07/21(金) 12:22:05.32 ID:C+EZcupv(1/2) AAS
1==1 の結果が 2でも-1でもなく 1 だってのは
仕様書のどこに書いてありますか?
27: デフォルトの名無しさん [sage] 2017/07/21(金) 12:25:57.68 ID:joLx1qFD(5/5) AAS
他言語は普通に代入などすれば、基本型はコピーでオブジェクトは委譲だ
C++は普通に代入などすれば、基本型もオブジェクトもコピーだ
で、メタプログラミングの観点から見て、何が起こるかということだな
C++は無駄なディープコピーが発生しやすい仕様なのだわ

C++もnewすれば他言語と同じになるが、GCが無いので常に有効ではない
やはりナマポはクラスでラップして・・・って事になるので
適切にコピーなりmoveなり寿命管理してもらわないと破綻する
28
(1): デフォルトの名無しさん [sage] 2017/07/21(金) 12:37:14.45 ID:YiUdVm2o(2/4) AAS
>>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.
29
(2): デフォルトの名無しさん [sage] 2017/07/21(金) 13:04:34.65 ID:C+EZcupv(2/2) AAS
>>28
おっ サンキュー

これC11っぽいけど、C89でもおんなじだよな?
30: デフォルトの名無しさん [sage] 2017/07/21(金) 13:30:56.58 ID:YiUdVm2o(3/4) AAS
>>29
残念ながら2011より前の規格は知らぬ
31: デフォルトの名無しさん [sage] 2017/07/21(金) 13:49:35.62 ID:JOiJxqKd(1) AAS
C99は同じ節の同じ段落にある。
C89は不明だが、もしそんな基本部分が変化してたら大騒ぎになってたはずなので同じだろう。
32: デフォルトの名無しさん [sage] 2017/07/21(金) 13:54:13.46 ID:YiUdVm2o(4/4) AAS
>>29
89と内容等価ということになっているANSI/ISO C90を入手した
6.3.9(==,!=)は6.3.8(大小比較)を参照していてそこには
yields 1 if the specified relation is true
とある
つまり1になる
33: デフォルトの名無しさん [sage] 2017/07/21(金) 15:17:08.56 ID:P7F/0MU3(1) AAS
>>9
9(4): デフォルトの名無しさん [sage] 2017/07/21(金) 00:56:26.30 ID:joLx1qFD(1/5) AAS
右辺値参照なら
外部リンク:srad.jp
が一番わかりやすい
これ読んでわからなかったらまだ手を出すのが早すぎたと思って諦めたほうが良い
本を買っても無駄な出費になるだろう
そして↑のページを見つけるのに検索してて出てきたのが↓
外部リンク[html]:woorex.com
で、全然読んでないが、こういった文章に価値はないと思う
ネットの文章のすべてに価値があるわけではないと思ったわ
横からだけど、すごく分かりやすかった。ありがたい。
34: デフォルトの名無しさん [sage] 2017/07/21(金) 19:19:00.46 ID:6hIUsyMM(1) AAS
>>24
GC 関係ないわな

> 勝手にディープコピーされるとか、そういうことは考える必要がないね

> C#のstructはmoveセマンティクスが必要であるような用途に使うものではないから

なぜか自信満々で頓珍漢な思い込みを披露されてもな
35: デフォルトの名無しさん [sage] 2017/07/22(土) 01:20:33.15 ID:oqulLxLp(1/3) AAS
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が入力されたらループを抜けるにはどう書けばいいんでしょうか?
36
(1): 片山博文MZ ◆T6xkBnTXz7B0 [sage] 2017/07/22(土) 01:34:09.94 ID:Scnyb+6Y(1) AAS
soku != 1 && soku != 2
37: デフォルトの名無しさん [sage] 2017/07/22(土) 01:36:10.92 ID:oqulLxLp(2/3) AAS
>>36
できました。そういう風に書くんですね。ありがとうございました。
38
(1): デフォルトの名無しさん [sage] 2017/07/22(土) 01:38:48.73 ID:aL/Y+CP+(1/2) AAS
()が強いので1||2が先に計算されて1になってしまう。
39
(1): デフォルトの名無しさん [sage] 2017/07/22(土) 01:40:28.07 ID:ewNbHc5x(1/2) AAS
!(soku == 1 || soku == 2)     (1 または 2 )ではない
⇒ soku != 1 && soku != 2   1ではない かつ 2ではない
40
(1): デフォルトの名無しさん [sage] 2017/07/22(土) 01:47:45.17 ID:oqulLxLp(3/3) AAS
いろんな書き方もできるんですね!
勉強になります。ありがとうございます。
41: デフォルトの名無しさん [sage] 2017/07/22(土) 06:19:41.71 ID:RRuLA+SK(1) AAS
C++1zでかっこよく書けるようになる。
そう思っていた時期がありました
42
(1): はちみつ餃子 ◆8X2XSCHEME [sage] 2017/07/22(土) 07:13:43.26 ID:Sw3YC1YO(1) AAS
>>39-40
この理屈はド・モルガンの定理って名前がついてるやつ。
43
(1): デフォルトの名無しさん [sage] 2017/07/22(土) 14:34:43.25 ID:9V10kE5p(1/2) AAS
>>38
なんで3じゃなく1になるの?
44: デフォルトの名無しさん [sage] 2017/07/22(土) 14:51:10.38 ID:ewNbHc5x(2/2) AAS
>>43
ビット演算のor ではなく、真偽判定の論理和なので
1の真偽を求めて真 ⇒ 1
(2の真偽を求めて真 ⇒ 1 : or 結合のショートサーキットで判定しなけど便宜的に)
こうなる
45: デフォルトの名無しさん [sage] 2017/07/22(土) 14:51:24.55 ID:o3Mfi2ju(1) AAS
1|2なら3
1||2は1
46: デフォルトの名無しさん [sage] 2017/07/22(土) 15:12:08.99 ID:9V10kE5p(2/2) AAS
難しいのね…
47
(2): ◆QZaw55cn4c [sage] 2017/07/22(土) 18:27:01.28 ID:Yr9CVNZl(1/5) AAS
>>42
いつも不思議に思うのだが、このド・モルガンは議論のスタートとなる公理なの?
それとも、なんらかの公理から導かれる定理なの?
教科書の最初の方でカップハットをやらされる度に思う疑問です
1-
あと 955 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.026s