1 名前:デフォルトの名無しさん [2019/04/02(火) 11:23:37.62 ID:SQXqRaAc0.net] !extend:checked:vvvvv:1000:512 C言語の話題のみ取り扱います C++の話題はC++スレへ 質問には最低限の情報(ソース/コンパイラ/OS)を付ける 数行で収まらないソースは以下を適当に使ってURLを晒す https://paiza.io/ https://ideone.com/ codepad.org/ C11 www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf C99 www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf kikakurui.com/x3/X3010-2003-01.html C FAQ 日本語訳 www.kouno.jp/home/c_faq/ JPCERT C コーディングスタンダード https://www.jpcert.or.jp/sc-rules/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
643 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 19:26:36.07 ID:omgaeJxY0.net] 目指していた方向はそうだったと思う
644 名前: mailto:sage [2019/05/24(金) 20:26:08.87 ID:0N6+tWvP0.net] >>615 >Cでもオブジェクト指向的に考えて作ること あくまでも「オブジェクト指向『的』」であることに注意すること C ではオブジェクト指向を実現できない(断言)
645 名前: mailto:sage [2019/05/24(金) 20:27:08.05 ID:0N6+tWvP0.net] >>617 >C言語ではオブジェクト指向も関数型プログラミングもできる C ではオブジェクト指向はできない(断言) 継承をCでどのように記述するのでしょうか?
646 名前: mailto:sage [2019/05/24(金) 20:27:59.68 ID:0N6+tWvP0.net] >>622 >linux kernelなんておもくそオブジェクト指向的な構造だろ あくまでも「オブジェクト指向『的』」であってオブジェクト指向そのものではありません(断言)
647 名前:デフォルトの名無しさん [2019/05/24(金) 20:41:47.14 ID:1FXcUtRQa.net] いやできなくはないよ。何せC++は元々はCへのコンバータだったしな。C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。 もちろんCは言語そのものがオブジェクト指向をサポートしてないから人間がそれをやろうとするととても面倒な事になるけどな。
648 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 20:51:16.47 ID:E0qJKDus0.net] そんなん言い始めたらアセンブラでもオブジェクト指向プログラミングできることになっちゃう。 言語としてOOPがサポートされてなきゃ認められないでしょ。
649 名前: mailto:sage [2019/05/24(金) 21:00:32.57 ID:0N6+tWvP0.net] >>628 >C++のソースを読んでC言語に変換して後のことはCコンパイラに任せてたんだよ。それが初期のC++。 C++ から C へのトランスパイラが存在したからといって、C にてオブジェクト指向(的ではなくそのものずばり)なプログラミングができるわけではありません C++ のコンパイラが存在するからといって機械語が OO でないのと同じです、まず、 C++ https://ideone.com/vAp2Sj に対応する C のコードを示してください
650 名前: mailto:sage [2019/05/24(金) 21:01:09.07 ID:0N6+tWvP0.net] >>629 >言語としてOOPがサポートされてなきゃ認められないでしょ。 激しく同感いたします!
651 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 21:12:51.85 ID:ZwmHdTYl0.net] >>610 全く問題にならない classというキーワードがなくても コードを書く者の考え方次第でカプセル化や継承はできる FILE構造体がその例だ 多態性がないというのは、おまえさんの認識不足で 関数ポインタでそんなものはすぐに実現できる そういう認識不足があるからこそ メジャーなカーネルをなぜ書けたかが理解できないのだ
652 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 21:15:04.81 ID:ZwmHdTYl0.net] >>630 対応するCのコードを示せるやつがいたら、おまえどうする? 朝8時の品川駅のホームでストリーキングでもするか?
653 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 21:24:37.67 ID:QPLeHwR8a.net] まあ継承なんてオブジェクト指向と関係ないよ
654 名前: mailto:sage [2019/05/24(金) 21:45:54.65 ID:0N6+tWvP0.net] >>632 >classというキーワードがなくても >コードを書く者の考え方次第でカプセル化や継承はできる C ではカプセル化はできても継承は不可能ですよ
655 名前: mailto:sage [2019/05/24(金) 21:46:59.73 ID:0N6+tWvP0.net] >>633 >対応するCのコードを示せるやつがいたら、おまえどうする? あなたができないことをそんなにアピールしなくてもいいと思いますよ
656 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 21:56:28.68 ID:wwZ4gkZH0.net] 仮想関数テーブルの実装方法について語るスレはここですか?
657 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:01:07.63 ID:ZwmHdTYl0.net] >>635 いーや、できる おまえさん禿本やリップマンくらい読んだか? 裸踊りを賭す自信もねえやつがいきがってんなよ
658 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:02:14.93 ID:ZwmHdTYl0.net] >>637 いいぜ おら、来いや
659 名前:蟻人間 mailto:sage [2019/05/24(金) 22:06:22.36 ID:/xfbOr910.net] >>630 https://ideone.com/omqT5r
660 名前: mailto:sage [2019/05/24(金) 22:17:20.89 ID:0N6+tWvP0.net] >>638 ではストロヴストルップやリップマンはどういっているのか、ここに引用していただけますか? あらかじめいっておきますが、引用はできない、なぜならば、そんな内容をストロヴストルップもリップマンも書いていないのだから
661 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:18:09.05 ID:TMKOHW7N0.net] >>625-627 , >>629 オブジェクト指向と言う概念と実装の区別がついてないんだな 低能なプログラマーによくある行動w 例えばLinuxで言えばリダイレクトなんて言うのはもろオブジェクト指向な機能だよね Applicatlon > xxx ってやればxxxがファイルならApplicatlon が出力したデータをファイルに書き込むし、xxxが端末なら端末にデータを表示するし、xxxがプリンタならデータを印刷する Applicatlonは出力先が何であるかを気にする必要はない もちろんLinuxはC言語でこれを実現してるしより面倒だろうけど当然アセンブラで実装することも可能
662 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:21:05.39 ID:0NhXAFL60.net] 概念ならFILE構造体とそれの操作関数群
663 名前: mailto:sage [2019/05/24(金) 22:21:27.40 ID:0N6+tWvP0.net] >>640 >typedef struct C >{ > A ThisA; > B ThisB; > int c; >} C; これは委譲であって継承ではありません。私は >>626 で「Cでは継承はできない」と主張しており、これを否定するために委譲は使えません
664 名前: mailto:sage [2019/05/24(金) 22:23:27.35 ID:0N6+tWvP0.net] >>642 それは smalltalk 的な OO であって C++ の OO の概念とは多少食い違うと思います
665 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:24:05.41 ID:0NhXAFL60.net] コンストラクタとデストラクタの機構だけは欲しいと思ったことがしばしば
666 名前: mailto:sage [2019/05/24(金) 22:24:31.62 ID:0N6+tWvP0.net] >>643 FILE は OO 的ではありますが、OO そのものではありません OO というからには委譲とは別の継承を表現できねばなりませんが、 C では継承を表現できません
667 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:41:32.12 ID:K6buSCwsM.net] glibとか大昔からあるじゃん… glibがooでないならooの定義をまず示せ
668 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:42:05.32 ID:hUeULEjja.net] オブジェクト指向ってC++固有の概念なの? だとすると、そりゃCで実現は無理でしょう。関係ないんだから。CとC++は。
669 名前: mailto:sage [2019/05/24(金) 22:44:44.02 ID:0N6+tWvP0.net] >>648 glibc++ は OO かもしれませんが glibc が OO だとは寡聞にして聞きませんね
670 名前: mailto:sage [2019/05/24(金) 22:45:51.47 ID:0N6+tWvP0.net] >>649 >オブジェクト指向ってC++固有の概念なの? いいえ、Java も C# も OO だし、 python も ruby も OO で表現できます
671 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:50:26.22 ID:hUeULEjja.net] >>650 GLibだよGLib 今知らないのもどうかと思うけど、使ってみると面白いと思うよ
672 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:51:22.70 ID:hUeULEjja.net] >>651 いや、それだとつじつま合わないでしょ 自分の決めた道を突き進めよ
673 名前:蟻人間 mailto:sage [2019/05/24(金) 22:53:40.43 ID:/xfbOr910.net] GTKのGLibだよね。
674 名前: mailto:sage [2019/05/24(金) 22:54:27.15 ID:0N6+tWvP0.net] >>653 どうつじつまがあわないというのですか?説明ください 私は「OO ならば委譲と区別された継承を記述されなければならない」と主張しています
675 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 22:55:59.59 ID:K6buSCwsM.net] >>650 glibcじゃねーよ… gimp、inkscape、gnomeほか様々なソフトウェアで使われてる。 linuxとは無縁だったんだな
676 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 23:36:16.20 ID:SCqWQYPI0.net] >>629 出来るに決まっている OO言語はオブジェクト指向プログラミングがやり易いようになっているだけでそれじゃなきゃOO出来ないというのはOOについて理解していないだけ
677 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 23:46:49.71 ID:SCqWQYPI0.net] >>644 多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書くというルールなだけ それだけで呼び出し元のコードはほぼなにも考えずにベースクラスの機能を使うことができる
678 名前:デフォルトの名無しさん mailto:sage [2019/05/24(金) 23:58:34.02 ID:S5Q/uU3j0.net] >>655 CでもOOできるし、継承できるし、オーバーライドもできる。 20年位前の本に「ANSI C に準拠したコンパイラならできる」と紹介されている。 メモリを意識したコードを書けない人には理解できないけどね。
679 名前:デフォルトの名無しさん [2019/05/25(土) 00:01:58.97 ID:7Hh+Cor80.net] C言語はABIが標準化されている、という文を見たんですが、 その標準仕様の名前は何ですか? 新しいプラットフォームがその標準仕様を満たせば バイナリレベルあるいはソースレベルで移植性があるんでしょうか?
680 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 00:07:07.65 ID:KPhaQb+n0.net] >>654 ていうかお前、MZ級にウンコな片山博文やんけ。 >>660 標準の名前は無いんじゃないの? とりあえず「ABI」でググれ。
681 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 00:11:09.80 ID:oops2jeN0.net] アーキテクチャ跨いでABIが統一できるわけないよね 引数の渡し方なんてアーキテクチャ変わったらそもそも使えるレジスタ変わるし 同一アーキテクチャの特定OS内ならバージョン変わってもABI互換ってのは良くあるけど
682 名前:蟻人間 mailto:sage [2019/05/25(土) 00:29:35.52 ID:2ZlhwbAL0.net] >>661 そのプライドを大切にしろよ
683 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 05:52:48.29 ID:Tic4GHY30.net] >>645 お前のOOの定義書いてくれ 俺の思うOOじゃないとか言われたらどうしようもないわなw
684 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 05:57:11.32 ID:6KmI3UXB0.net] Cでオブジェクト指向プログラムなんて書くのは時間の無駄 速度が必要な部分だけCで作るのが正解
685 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 06:05:28.22 ID:6T2yG8cn0.net] >>641 てめえの怠慢を俺が尻拭いする筋合いはねえぜ 調べるところまで教えてやったんだ 自分で調べる気がねえなら不勉強のまま取り残されろ
686 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 07:19:56.39 ID:DOpjF4HUM.net] >>665 > Cでオブジェクト指向プログラムなんて書くのは時間の無駄 そう言うこと ただ時間がかかると言うのとできるできないの話は別 なのでお前のレスのほうが時間の無駄w
687 名前: mailto:sage [2019/05/25(土) 15:51:01.79 ID:jppBZDTS0.net] >>658 >多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書くというルールなだけ C では構造体のメンバの順番をプログラムから指定することはできたのでしょうか? C コンパイラはアラインメントを考慮して最適化をはかり構造体のメンバを、プログラマの記述から適宜入れ替えていもいいのでは? となると一つめのメンバにベースクラスのインスタンスを書いても、コンパイラに入れ替えられてしまっては無意味なのでは?
688 名前: mailto:sage [2019/05/25(土) 15:52:11.46 ID:jppBZDTS0.net] >>659 >CでもOOできるし、継承できるし、オーバーライドもできる。 できないとおもいますよ、できるというのなら >>630 を C で記述してみてください >20年位前の本に「ANSI C に準拠したコンパイラならできる」と紹介されている。 出典を明記ください
689 名前: mailto:sage [2019/05/25(土) 15:53:43.84 ID:jppBZDTS0.net] >>666 >てめえの怠慢を俺が尻拭いする筋合いはねえぜ あなたは私の怠慢を主張するのと同様の筋で、私はあなたの欺瞞を主張します 出典元や引用を正確にできないのであれば、あなたは嘘をついていると判断されてもしかたがないと思います
690 名前: mailto:sage [2019/05/25(土) 15:55:14.60 ID:jppBZDTS0.net] >>661 片山先生は私とは比較にならないほど生産性の高いプログラマですよ
691 名前: mailto:sage [2019/05/25(土) 16:03:59.98 ID:jppBZDTS0.net] >>652 はじめて知りました、>>650 は勘違いした内容でした、すみません ご紹介ありがとうございます。今試しているところです!
692 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 16:17:34.75 ID:Tic4GHY30.net] >>668 真面目な話、規格書読んでこい ツッコミどころが頓珍漢すぎる
693 名前: mailto:sage [2019/05/25(土) 17:02:40.54 ID:jppBZDTS0.net] >>673 コメントありがとうございます。確かに >>668 には誤りが含まれていました ISO/IEC 9899:1999 6.7.2.1
694 名前:.5 As discussed in 6.2.5, a structure is a type consisting of a sequence of members, whose storage is allocated in an ordered sequence, JIS X3010:2003 構造体は,メンバの列から成る型とし,メンバの記憶域は,並べられた順に割り付ける(6.2.5参照)。 しかし、この記述は構造体のパディングが構造体の先頭に詰められる場合を排除していないと考えます よって、>>658 >多重じゃない継承の場合Cでは1つめのメンバにベースクラスのインスタンスを書く >それだけで呼び出し元のコードはほぼなにも考えずにベースクラスの機能を使うことができる 構造体の先頭にパディングがあった場合は、この記述は正しくないのではないでしょうか。 [] [ここ壊れてます]
695 名前: mailto:sage [2019/05/25(土) 17:37:11.41 ID:jppBZDTS0.net] >>674 よくよく考えると、私の「この記述は構造体のパディングが構造体の先頭に詰められる場合を排除していないと考えます」もかなり疑わしい、 パディングというものは、一つのメンバがあって、それに対してもう一つのメンバを置くときにパディングを置くものであって、最初からパディングを置く必然性がないですね struct S { int a; } b; のとき &b = &(b.a) は保障されている、時間がたつにつれてそんな気がどんどんしてきました… >>658 を認め、同時に単一継承であれば C で OO と継承を表現できることを認めます
696 名前: mailto:sage [2019/05/25(土) 18:11:59.97 ID:jppBZDTS0.net] >>674 > a type consisting of a sequence of members, whose storage is allocated … この is にも惑わされてしまいました これは a type consisting of a sequence of members, each of which is allocated about storage in an ordered sequence とか a type consisting of a sequence of members, each of which's storage is allocated in an ordered sequence くらいに解釈するべきなんですね 検討する機会をいただきありがとうございました
697 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 21:04:32.61 ID:DDy3bloZM.net] >>675 絶対許さんぞおおおお
698 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 21:07:06.72 ID:aM9QB8YDa.net] オブジェクト指向って抽象化が目的なのに、メモリ配置とか気にするのは馬鹿みたいだよな
699 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 21:23:55.56 ID:cjrLAMgS0.net] MicrosoftのCOMはほとんど全てのコンパイラが構造体のメモリ配列を同じ様にするってのを利用してるんだっけ?
700 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 22:13:30.07 ID:UN9uDEfaM.net] >>678 ここにも概念と実装の区別がついてないバカが…w
701 名前:デフォルトの名無しさん mailto:sage [2019/05/25(土) 23:25:49.27 ID:KPhaQb+n0.net] >>669 C言語でオブジェクト指向を表現する (クラス、継承) https://qiita.com/qiita_kuru/items/8f3441bce9b2f53d1d62 この辺でも読んどけ。 「何故できるか」まで言及したもっといい文献はあるがカスには教えない。 俺は「せざるを得ない」状況だったのでCでOOしたが、ネイティブでOOできるならそれに越したことはない。 あ、同じ板でハッシュが一致してるのでお前は蟻。
702 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 01:24:13.78 ID:zv+FEFKTa.net] >>681 またおまえか
703 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 08:36:08.16 ID:o+/j3IaP0.net] >>670 は? 俺は主張なんざしてねえぜ 事実をありのまま指摘しただけだ 何勘違いしてやがる というか勘違いということにせねば立場がねえってかw
704 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 08:56:22.54 ID:7tI1cTYc0.net] もうこんなとこで喧嘩しても勝敗つかないんだからやめろw 仲良くできねえのかお前らは
705 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 12:29:05.12 ID:lzKtO2WM0.net] でも冷静になって考えてみろ 単細胞時代から何億年と喧嘩してきた結果今の人間がいる訳だから喧嘩をやめてしまったらそれは果たして生物と言えるのか 逆に言えばAIが人知を超える時 人間は機械に滅ぼされ地球から人間はいなくなっているという事 つまり今何をすべきかと言うと人間は思考をやめアホになるべきである
706 名前: そうアホの坂田こそ未来の救世主ネオなのである [] [ここ壊れてます]
707 名前: mailto:sage [2019/05/26(日) 15:17:23.15 ID:CpBTYp0n0.net] >>681 そのご紹介のリンク先は、内容について、はっきりいって詰めが甘いです すなわち、継承と委譲を区別できていません そんな中途半端な理解で quita に掲載するとか、玉か石かどちらかといえば、石の部類でしょう、全然参考になりませんでした そんな中途半端な内容の記事を掲載するあなたも同様と判断いたします
708 名前: mailto:sage [2019/05/26(日) 15:19:14.79 ID:CpBTYp0n0.net] >>683 事実かどうかは、主観的か客観的か、に依存すると思いますが、 相対論においてはすべての事象について純客観的などありえない…@ ので、@より、あなたは主観を主張しているものと私は理解します
709 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 15:46:43.76 ID:aNhG7Lwu0.net] >>686 「継承」に必要な操作一式を委譲に基づいて提供できているなら継承できていると思うんだけど、 言語サポートを伴って暗黙的に機能しない限り「継承」と呼ぶべきではない、ということなの? そこで明確に区別することにあんまり意義が見出せないんだけど、その定義どっか出典示せる?
710 名前: mailto:sage [2019/05/26(日) 15:52:14.70 ID:CpBTYp0n0.net] >>688 委譲による実装で継承を実現できているのなら、それは継承(の一形態)である、…@ という主張ですね @は私にも理解できますが、委譲はダイヤモンド継承を回避できない欠点があるのでは、と考えています 「ダイヤモンド継承」については C++ の書籍には大概載っているかと、具体的な書籍名は探しておきます
711 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 16:00:20.28 ID:Jdhtsrqd0.net] まあ継承なんてオブジェクト指向と関係ないからね
712 名前: mailto:sage [2019/05/26(日) 16:02:51.60 ID:CpBTYp0n0.net] >>690 それは初耳です Object Oriented に継承は憑き物だと思っていました、継承のない OO って存在するのですか?それは例えばなにですか?
713 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 16:08:55.02 ID:aNhG7Lwu0.net] >>689 ちょっと何言ってるかわからないな。 ダイアモンド継承の問題を「継承」で回避しているが委譲では回避できないであろう例を挙げてくれたら考える。 明確に区別しないことも理解できると言うなら「詰めが甘い」とか「中途半端」とか言ってたのは何なのか・・・。
714 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 16:22:19.45 ID:Jdhtsrqd0.net] >>691 なにって、言語を知りたいということ?
715 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 16:37:44.23 ID:vwTAovQx0.net] クラスベースのOOP言語ではクラスの継承は一般的だけどプロトタイプベースのOOP言語では継承の概念は存在しないよ
716 名前: mailto:sage [2019/05/26(日) 16:40:12.48 ID:CpBTYp0n0.net] >>692 クラス A, B, C, D について、 A のメンバ変数を a とする、また B->A(B は A を派生する) C->A D->B, C (多重継承) において、これを委譲で実装すると、B.A.a と C.A.a が同じであるべきにもかかわらず二重にインスタンスとして生成されてしまうので、 継承で実装した D.a を、委譲で実装した D.B.a と同一視するか、D.C.a と同一視するか、また継承における D.a を更新した場合に委譲では D.B.a と D.C.a の両方を更新するコードを生成しなければならないのか、 等あいまいな部分がでてくる、これがダイヤモンド継承問題です 継承で実装すれば、C++ ではこれを仮想継承といいますが D.a の実態を一つに限定することができますし、D.B.a, D.C.a の両方を保存することもできます、つまりモデリングにおいて選択肢を準備できる しかし委譲で実装すると D.a の実態を一つに限定することが不可能です、つまり選択肢を準備できません 以上より委譲で継承のすべてを代行できないため、委譲と継承を区別する必要が生じると考えます ただし、多重継承を認めないのであれば、委譲と継承は同一視しても差し支えないと考えます
717 名前: mailto:sage [2019/05/26(日) 16:41:21.10 ID:CpBTYp0n0.net] >>693-694 ふーん、インタプリタ JavaScript には継承はないのですか
718 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 16:41:38.74 ID:vwTAovQx0.net] https://ja.m.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97%E3%83%99%E3%83%BC%E3%82%B9
719 名前: mailto:sage [2019/05/26(日) 17:08:49.07 ID:CpBTYp0n0.net] >>692 >明確に区別しないことも理解できると言うなら「詰めが甘い」とか「中途半端」とか言ってたのは何なのか・・・。 「単一継承に限定するのならば委譲による継承の実装も可能である」という意味での>>689 の「理解します」の文言だと解釈ください ただし委譲で継承をすべて実現できないので、>>681 掲載のリンク先は「詰めが甘い」と判断せざるを得ない、そんなリンク先を紹介する >>681 も同様と判断するものです
720 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 17:11:49.57 ID:iR9VJ5EUa.net] 継承がオブジェクト指向と無関係なんだから、委譲で実現する必要がない
721 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 17:25:25.86 ID:aNhG7Lwu0.net] >>695 C++が仮想継承・多重継承でやっていることをコードで書き下せば済む話。 アップキャストがnopで済むか、オフセットの足し算になるかなどの詳細に基づいて区別しろってことに 聞こえるんだけど、やっぱりそんな区別の意義が見えてこない。
722 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 17:39:21.34 ID:kcdU4Ge60.net] もうそろそろ別スレ立ててやれや > それは smalltalk 的な OO であって C++ の OO の概念とは多少食い違うと思います とか言う様な奴を相手にしても永遠に終わらんと思うが…
723 名前: mailto:sage [2019/05/26(日) 17:50:19.72 ID:CpBTYp0n0.net] >>700 >C++が仮想継承・多重継承でやっていることをコードで書き下せば済む話。 そこで実現されているのは私のいうところの継承であって、私のいうところの委譲ではありません 委譲ではダイヤモンド継承に対応できない(選択肢を提供できない) したがって、委譲と継承とは区別するべきであり委譲で継承を実装するべきではない、という私の主観には一貫性があると思います
724 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 17:56:41.22 ID:NrZyzakr0.net] >>702 継承はだめだよ これから使ったら反省文ね
725 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 18:07:56.35 ID:aNhG7Lwu0.net] >>702 むちゃくちゃだなぁ。「私のいうところの」「継承」「委譲」の区別がどうにも掴めないし、 その区別の意義も示されなさそうだし、迷惑してる人もいるみたいだから、離脱させてもらうよ。
726 名前: mailto:sage [2019/05/26(日) 18:09:31.06 ID:CpBTYp0n0.net] >>703 私がいつ「継承は要らない子」とかいいましたか? あくまでも「継承を委譲で実装できない」とは言っていますが(これは部分的に意見を修正していますが)「継承不要論」とかは一切主張していないと考えていますよ
727 名前: mailto:sage [2019/05/26(日) 18:13:13.41 ID:CpBTYp0n0.net] >>704 継承と委譲の区別は必要だと思いますよ、その言葉を贈らせていただきましょう
728 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 18:34:08.86 ID:NrZyzakr0.net] >>705 だから、世界の共通認識として要らないもの。 使っちゃだめ。
729 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 18:57:26.86 ID:mCW+tIqA0.net] もういい加減やめてくれないかな やりたいなら、Cでクラス実装とかって 別スレたててその中でやってくれ
730 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 19:03:45.32 ID:NrZyzakr0.net] >>708 またおまえか
731 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 20:50:42.22 ID:o+/j3IaP0.net] >>706 私のいうところのって、最初の論旨からずいぶん乖離しているな カプセル化や継承ができるかどうかって話だっただろうがよ いつから、おまえのお気に召すかどうかって話になったんだよ
732 名前:デフォルトの名無しさん mailto:sage [2019/05/26(日) 23:38:41.06 ID:SA/0I36h0.net] >>686 煽って、良い文献の情報を得ようとしているのだろうが、カスにはやらんよwwww
733 名前:デフォルトの名無しさん [2019/05/27(月) 01:54:45.96 ID:sXav5Bzw0.net] https://jp.quora.com/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A8%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B
734 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 02:52:02.77 ID:jiPRfYyG0.net] ソロソロ終わって良いですよね? この議論は、C使っている人とは違う世界に感じる
735 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 03:09:42.07 ID:HzhW79+j0.net] >>713 またおまえか
736 名前:デフォルトの名無しさん [2019/05/27(月) 09:01:49.81 ID:Nqk3VxBP0.net] stddef.hをインクルードして #
737 名前:define __STDC_WANT_LIB_EXT1__ 1 を定義して -std=c11をつけても gccでrsize_tが使えないですけど なぜですか? windows版のGCCでは使えました [] [ここ壊れてます]
738 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 09:23:40.73 ID:or6IbtWZa.net] defineの順番とか…
739 名前:デフォルトの名無しさん [2019/05/27(月) 09:34:14.79 ID:Nqk3VxBP0.net] >>716 順番は試しましたが駄目でした
740 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 10:04:44.33 ID:PB+ZSyAza.net] rsize_tって多分オプションだから実装されてないよね? windowsはなぜか実装してる
741 名前:デフォルトの名無しさん [2019/05/27(月) 10:11:08.57 ID:Zyn15i1D0.net] C#でポインタ使えばC、C++は無くても良いんじゃないですか?
742 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 10:15:55.39 ID:gR3ITcWOM.net] C#使うならポインタのように面倒臭いこと考えなくても変数でも関数でも参照できるだろ
743 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 19:48:50.47 ID:0mZL0xC90.net] C#のポインタはC/C++ほど使い勝手が良くない C#でポインタを使ったところでパフォーマンスはC++の半分程度 まあトータルで見れば最優秀クラスの言語なのは間違いないけどね C++みたいなスパゲティ言語ではないし
744 名前:デフォルトの名無しさん [2019/05/27(月) 20:36:21.78 ID:f4m/nmMua.net] まあ、だいたいの後から出た言語はC/C++の欠点を補おうとしているのでポインタがあっても安全なのが普通だな。
745 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 20:42:45.71 ID:MaSSH1d10.net] 安全じゃないのがc#のポインタの特長だろ。 特徴じゃなく
746 名前:デフォルトの名無しさん mailto:sage [2019/05/27(月) 21:12:57.55 ID:RgnUDQi4a.net] そりゃC#のポインタ使うにはunsafeオプションが必要だからね。安全じゃないわね。 C#のポインタは過去資産APIを使うための必要悪って感じか。
747 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 07:12:55.99 ID:gr6HI2ftM.net] >>722 Cの前からでてたPascalにもポインタはあるんだが… むしろC/C++が例外的
748 名前:デフォルトの名無しさん [2019/05/28(火) 09:09:59.25 ID:HGTlDNNW0.net] 数年前からこのプロジェクトがちょっと注目されてるけどどう思う? RustはC++を置き換えてもCを置き換えないだろうと思うし、 ZigはCの置き換えとしては妥当なんじゃないかという気がする。 Cより高速、単純、堅牢らしい。 https://ziglang.org/
749 名前:デフォルトの名無しさん [2019/05/28(火) 09:29:30.01 ID:HGTlDNNW0.net] Cより速いと主張 >Speaking of performance, Zig is faster than C. 単純な言語仕様 >Small, simple language 性能と堅牢性 >Performance and Safety: Choose Two 個人的にとても興味を持ってるんだが
750 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 17:05:35.46 ID:5GqHhS1Q0.net] CはC++ほどではないにせよ色々酷いから Cを置き換えられる言語があるなら見てみたいしぜひ置き換えてほしい
751 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 17:30:53.21 ID:vL2LyOeQ0.net] >>726 ttps://www.spriters-resource.com/resources/sheets/34/36939.png ちょっと検索してみたらもうドット絵まで準備されてるらしい さすがに西洋人は仕事が早いな
752 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 19:02:59.10 ID:Pzgny9jf0.net] https://www.datadeliver.net/receiver/file_box.do?fb=966f97555e424f19a29d0d866b4b3cf5&rc=683943257e194056afc95195b542ba5d&lang=ja キューを実装する?プログラムを書いたのだがコアダンプになってしまったため、どこが悪いのか調べるために1回だけenqueueをするように変えたら無限に10を生成するようになってしまった どこが悪
753 名前:ゥったのか、どうして10が無限に生成されるのか、教えて欲しい 環境は学校の端末演習室でやったから詳しいことはわからんです [] [ここ壊れてます]
754 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 19:04:37.65 ID:F6815kaN0.net] >>730 それじゃあ検証のしようがない ネットカフェで書いてここに晒せ
755 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 20:11:39.46 ID:vL2LyOeQ0.net] 「無限に10を生成するようになってしまった」「どうして10が無限に生成されるのか」 コレがポイントだな 無限に生成してるように見えるだけだよ 要するにprintが悪い whileだと分かりづらいんだよ forだとラク 「q->head = temp;」とか、自分で書いてて分からなかったんだろ だからwhile文だとこのケースでは分かりにくくなる forを試gうのが正解 void print(struct queuel *q){ struct cell *pt; printf("["); for( pt = q; pt != NULL; pt = pt->next ){ printf(" %d", pt->data); } printf(" ]\n"); }
756 名前:デフォルトの名無しさん [2019/05/28(火) 21:09:24.77 ID:Rd7hCJnFa.net] >>725 Pascalの方が先にできたんだっけ? まあでも用途が大幅に違うよね。Pascalはコンピュータの学習用の高級言語でCはOS記述用でアセンブラ代わりに使う言語。
757 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 21:27:52.19 ID:jSvCRMUQ0.net] Pascalが嫌いな人が作った言語だ
758 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 22:21:26.92 ID:/lAZ9dU10.net] >>733 だからそんなことを言い出したら>>722 の言うポインタが安全な言語って用途が違う言語だよね って話にしかならないんだが…
759 名前:デフォルトの名無しさん [2019/05/28(火) 22:24:51.47 ID:Rd7hCJnFa.net] >>735 まあそうだな。 Cは用途が違う上に古くて安全性が低い感じか。
760 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 23:20:22.65 ID:jSvCRMUQ0.net] 安全性って何だよ インテルのerrataみたいなことか?
761 名前:デフォルトの名無しさん mailto:sage [2019/05/28(火) 23:34:40.02 ID:IamnQRk90.net] 子供にはナイフを使わせるなというのと同じ類いか
762 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 04:57:03.97 ID:mWed49vm0.net] >>736 いやOSを書くにはその安全性が邪魔になるから両立は難しいよ
763 名前:デフォルトの名無しさん [2019/05/29(水) 06:20:35.18 ID:D5Uzvk1s0.net] OSのコードはどんな感じなの? ポインタを使ったトリッキーな事をやってるの? 未だにLinuxでバッファオーバーフローの脆弱性出てるよね
764 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 06:48:57.50 ID:Bfh00rIBM.net] >>740 OSのソースなんてちょっとググればいくらでも出てくるから自分で見なよ
765 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 07:45:37.52 ID:6C23lth10.net] 見たこともないやつが議論してたのかよ
766 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 08:03:59.01 ID:aFUCBt4U0.net] 詳細linuxとかいう1000ページの宗教書だろ 持ってるだけで御利益がある
767 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 08:13:08.04 ID:akQz27P/d.net] オープンソースなのだから1分もあればソースコードくらい見られるだろうに
768 名前: mailto:sage [2019/05/29(水) 18:31:01.76 ID:8RGCI4670.net] >>740 >未だにLinuxでバッファオーバーフローの脆弱性出てるよね 最近は聞かないね…
769 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 19:51:04.91 ID:D+pGsdPRa.net] 今普通に静的・動的解析使うとバッファオーバーフローなんてあり得ない感じするわ。
770 名前:デフォルトの名無しさん mailto:sage [2019/05/29(水) 20:40:15.44 ID:rT4tqcG+0.net] strcpyとかsprintfとか使ってるコードはまだたくさんあるでしょ dstのサイズ指定しないライブラリとか
771 名前:デフォルトの名無しさん [2019/05/29(水) 21:00:57.32 ID:FFsAnOexa.net] Cは標準ライブラリ考え直した方が良いかもね。
772 名前:デフォルトの名無しさん [2019/05/31(金) 08:23:23.52 ID:JBiczG6TM.net] Cが最も好きだけど、 C十十のほうがライブラリが 便利なのあるから、 個人で趣味で作るものは最近は CとC++
773 名前:ャ在で作ります。 わりと自由に混在できるので とても助かってます。 こうゆの俺だけですかね? [] [ここ壊れてます]
774 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 08:28:11.59 ID:7PD5X056a.net] C††
775 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 08:30:02.90 ID:LyENK1r60.net] C‡‡
776 名前:デフォルトの名無しさん [2019/05/31(金) 09:21:15.46 ID:GTUdpXapa.net] С++ ↑ キリル文字
777 名前:デフォルトの名無しさん [2019/05/31(金) 18:42:40.60 ID:JBiczG6TM.net] C十十つ ―ー
778 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 18:46:16.16 ID:4felF8bG0.net] C田田
779 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 19:11:42.88 ID:Ki0lpFF5M.net] C云々
780 名前:デフォルトの名無しさん [2019/05/31(金) 19:45:27.77 ID:/GnAMAD/a.net] ⊂┼┼
781 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 21:44:53.32 ID:r0b/3vSWd.net] C言語認定一級を取得したら転職でどれぐらい評価されますか?
782 名前:デフォルトの名無しさん [2019/05/31(金) 21:48:01.31 ID:I0+j7s4/a.net] さあ? その会社がどの程度その知識を必要としているかで変わるのでは?
783 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 21:48:52.32 ID:r0b/3vSWd.net] >>758 そういうときは一般化して正確じゃなくても妥当な範囲で思考して回答する癖をつけましょうね〜
784 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 21:56:26.15 ID:OHagz7+U0.net] うちの周囲じゃ全く参考にもしていないし資格給が出るわけでもないって所が多いな
785 名前:デフォルトの名無しさん mailto:sage [2019/05/31(金) 22:06:46.05 ID:4X6MeSMk0.net] 英検1級の方が重要そう。
786 名前:デフォルトの名無しさん [2019/06/01(土) 11:44:52.57 ID:2YdNSpFdd.net] codepad.org/NUCaFYyE 雨が降る様子を自分の今持ってる知識だけで作ろうとしたんですが、表現が上手くできてない気がします だれか改善案があれば助言お願いします
787 名前:デフォルトの名無しさん mailto:sage [2019/06/01(土) 18:13:48.99 ID:w9UetZ9K0.net] >>762 それはC言語の問題ではなかろう
788 名前:デフォルトの名無しさん [2019/06/01(土) 18:56:55.84 ID:2YdNSpFdd.net] >>763 抜けてました プログラムの問題として、実行すると縦に雨粒が重なってしまうのが目立っていて、この原因がわからず質問しようと思いました。
789 名前:デフォルトの名無しさん mailto:sage [2019/06/01(土) 19:26:44.16 ID:w9UetZ9K0.net] >>764 それは使用する言語とは無関係に、雨らしく見せるアルゴリズムの問題ではないか? ある処理をC言語で実現したいがどう書いていいか分からないとか、書いたものが想定通りにならないのはなぜかとかなら答えようがあるが。
790 名前:デフォルトの名無しさん [2019/06/01(土) 21:18:58.51 ID:2YdNSpFdd.net] >>765 1番上の行で雨を発生させるとき何列目で発生させるかは乱数できめているはずなのに、何行か連続で同じ列に発生しているのがよく見られていて、それが何故なのかがわかりません。 このプログラムは改良中のもので、その前のプログラムは雨粒が全部同じ速さのやつを作っていてそれは問題なく(上の現象も起きず)動いていたので、乱数でなくプログラムの問題かなと思って質問しました
791 名前:デフォルトの名無しさん mailto:sage [2019/06/01(土) 21:37:41.87 ID:njUSTe0T0.net] >>766 乱数っていうのは偏るものだから、同じ列に連続して発生することが普通。 同じ列に発生しないような作為をする場合は乱数とは言わないと思う。 https://twitter.com/Newton_Science/status/1031788874836529152 あと、'o'が縦に連続するのに違和感があるのなら'|'などに置き換えれば良いと思う。 https://i.imgur.com/wR1mNu5.gif みたいな感じで 適当に作っててチカチカしちゃってるからあまり参考にならないかもしれない (deleted an unsolicited ad)
792 名前:デフォルトの名無しさん [2019/06/01(土) 22:01:32.09 ID:2YdNSpFdd.net] >>767 すごい!!! 一気に雨っぽく見えるようになりましたw 乱数の件大変
793 名前:勉強になりました もっと改良するとしたら、そのツイートのように不自然に見えるランダムさをなくすため振るいにかけるような工夫もしてみようと思います。 あと、もしよければGIFのやつのソースコードを貼ってもらえないでしょうか。よろしくお願いします [] [ここ壊れてます]
794 名前:デフォルトの名無しさん mailto:sage [2019/06/01(土) 22:03:49.20 ID:gZsm+Fjra.net] 一様分布でなくても乱数とは言えるだろう
795 名前:デフォルトの名無しさん mailto:sage [2019/06/01(土) 22:10:20.53 ID:njUSTe0T0.net] >>768 一応貼るけど自分はC言語あまり得意でない上に適当にササっと作ったのだからあんまり参考にはしないでほしい https://ideone.com/FG3nNS system("cls")で画面更新してるけどチカチカさせずに滑らかに動かしたいならpdcursesとか使ったほうが良いと思う あとLinuxだったらclsでは動かない
796 名前:デフォルトの名無しさん [2019/06/02(日) 08:12:25.21 ID:Df5btDJSd.net] >>770 ありがとうございます! 初心者なので関数の使い方とか、あと自分がいかに無駄なコードを書いてたかとかがわかってとても参考になります 調べてみようと思います。ありがとうございました
797 名前:デフォルトの名無しさん mailto:sage [2019/06/02(日) 13:28:56.70 ID:gM/IYiKd0.net] constが外れるのにキャストせずに char *p = "abc"; とできることを定めている条文どこだっけ?
798 名前:デフォルトの名無しさん mailto:sage [2019/06/02(日) 14:35:27.10 ID:hvNC8EHQa.net] 初期化はちょっと違うんじゃねえかな
799 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 19:44:47.54 ID:JpBlPJqE0.net] https://i.imgur.com/bxgSD4n.jpg ちんぷんかんぷんなので教えて下さい
800 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 19:47:13.69 ID:aVpNGdHY0.net] 火の玉ストレートでワロタw
801 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 19:51:23.16 ID:NMMhu3n80.net] >>774 糞みたいな問題だな 家木臭すぎ
802 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 19:56:34.99 ID:JpBlPJqE0.net] 解決しました
803 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 19:56:39.36 ID:vGrK+0JX0.net] もうちょっときれいに写せないのか
804 名前:デフォルトの名無しさん [2019/06/03(月) 21:20:26.29 ID:CuEu7mica.net] 影があって見えない。 ていうか、試験中に撮影して書き込みか? 思い切ったカンニングだな。
805 名前:772 mailto:sage [2019/06/03(月) 22:17:42.98 ID:V6PZ+bAi0.net] (3)のとこ、この試験問題を作った教官がどういう教え方をしているのか聞かせてくれ
806 名前:デフォルトの名無しさん mailto:sage [2019/06/03(月) 22:19:26.68 ID:V6PZ+bAi0.net] 正解は *(const char **)&s なんだが解答群にねえだろ
807 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 01:35:34.87 ID:TgdlAqGq0.net] >>781 C++11以降でもなさそうだし、回答群にあるsでいいでしょ。
808 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 07:58:43.31 ID:e9k+jtYr0.net] タイミングがよすぎるし>>772 と>>774 は同一人物なのかな
809 名前:デフォルトの名無しさん [2019/06/04(火) 10:12:17.26 ID:prB+PlYza.net] ワッチョイからすると別のようだが
810 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 10:47:57.52 ID:PKXus+yhx.net] 簡単なテストがちんぷんかんぷんな人が規約を気にするとは思えない。
811 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 11:04:10.57 ID:eBRK1s1cH.net] 【速報】金券五百円分とすかいらーく優侍券をすぐもらえる https://pbs.twimg.com/media/D8I_kMUUYAEOmcl.jpg @ スマホでたいむばんくを入手 A 会員登録を済ませる B マイページへ移動する C 招待コード→招待コードを入力する [Rirz Tu](スペース抜き) 今なら更に4日18時までの登録で2倍の600円の紹介金を入手 クオカードとすかいらーく優待券を両方ゲットできます。 数分で終えられるのでぜひお試し下さい。
812 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 13:24:20.51 ID:VVsdR08YH.net] >>786 QUOカード良いな
813 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 15:35:37.38 ID:ZIqEmt8SM.net] >>786 複数スレに書き込みまくってID変えてレスも書き込みまくってる。
814 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 17:39:59.80 ID:dFy1Csfg0.net] 迷惑メール来るようになるっていう報告もあるからこれはスルーしたほうが良いと思う
815 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 17:46:57.34 ID:VrCvogjT0.net] ありとあらゆるスレに貼られてるbotだから気にしなくていいぞw
816 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 17:48:42.06 ID:rpsLXROr0.net] 内容を変えてNG対策すり抜けをやろうとしているから、悪質だと考えた
817 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 18:10:41.59 ID:QEritYjya.net] サービスの提供もとに不正行為として通報して、そいつの招待コードとやらを無効にさせられないかな。
818 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 18:49:11.42 ID:rpsLXROr0.net] 提供元も共犯だろう
819 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 20:15:40.66 ID:dFy1Csfg0.net] これってどこの企業がやってるんだろう 普通に5chでは荒らしに近い迷惑行為だしなんとかできないかな
820 名前:デフォルトの名無しさん [2019/06/04(火) 20:19:32.69 ID:RBIldFVda.net] しかし500円だの600円だのしょぼいな。 PayPayみたいにずっと二割引でたまに全額当たるぐらいやらなきゃ宣伝にならんだろう。
821 名前:デフォルトの名無しさん mailto:sage [2019/06/04(火) 20:43:44.67 ID:rpsLXROr0.net] 宣伝じゃなく、個人情報の収集だから
822 名前:デフォルトの名無しさん mailto:sage [2019/06/05(水) 00:33:04.12 ID:ZHHYr8Rz0.net] とてもいいアプリだからダウンロードして星つけてあげたらいいと思うよ
823 名前:デフォルトの名無しさん [2019/06/05(水) 10:04:09.95 ID:Fd++qFdya.net] 激しいステマ
824 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 16:33:58.73 ID:uIEpx76AH.net] 真って0でしたっけ?1でしたっけ?0以外でしたっけ?1以外でしたっけ?
825 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 17:02:27.40 ID:HLWbZT6Fa.net] >>799 bool型の1です。
826 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 17:27:02.62 ID:RHh4qcVs0.net] 0以外は真として扱われることが多いな。 0は明示的にfalseになると思う。 そのfalseの否定がtrue。
827 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 17:31:47.53 ID:OLbvc6Nr0.net] 論理演算結果を整数化したら 偽が0 真は1 整数を論理評価したら 偽が0 で真はそれ以外
828 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 17:33:03.09 ID:sehGKr170.net] #define TRUE (1==1) #define FALSE (!TRUE) こんな事書いてたな 値がいくつなのかは気にしなかった
829 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 20:41:26.72 ID:NHeyKhkN0.net] OR EAX,EAX JZ FALSE JNZ TRUE こんなんか?
830 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 21:31:11.89 ID:51aJPRpO0.net] TRUEと比較するなって先輩に言われたろ
831 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 21:37:49.54 ID:e6zybBXY0.net] !!a == TRUE ならセーフになると思われるー
832 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:15:27.47 ID:RQudHa2vd.net] 論理演算では1が真なのに終了は1が異常終了なのはなぜですか? 1が正しく0が間違いというイメージなのですが
833 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:18:06.19 ID:RHh4qcVs0.net] 昔はintを返す習慣が多分にあったのでその習慣によるが、自分は異常終了は-1返してたな。
834 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:19:30.98 ID:0dWbT8qma.net] >>807 いや、boolが戻り値なら真を成功にすることがむしろ多いと思う。 「エラーを返す」関数の需要が多いということではないか。
835 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:21:18.54 ID:51aJPRpO0.net] エラーの種類を沢山返せるから
836 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:23:25.13 ID:e6zybBXY0.net] 正常というのは1つの状態しかないが 異常には色々な種類があるのでそれを区別するためにコードとして返したい というのと 2値しかない真偽をどう値に配分するか というのを同列に並べるとパニック。 C言語では別のものとして割り切る なぜC言語では偽を0に割り当てたのか?という問いの答えを求めているのならば… 俺は知らない
837 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:23:54.80 ID:Bjvb97BWx.net] >>807 正常は 0でいいけど、異常はいろいろな状態の別を報告できるようにでは
838 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:30:40.09 ID:51aJPRpO0.net] ソフト会社に長年いて開発者からこの質問は初 OSインストールできませんなんてすごく高度なんだなって思った コマンドのテストでコマンドの戻り値ってあるんですがなんですか?
839 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:36:39.33 ID:0dWbT8qma.net] >>813 windowsの終了ステータスの確認の仕方とか忘れるしなあ。 言葉で出てくる結果しか見れないなんて普通だと思うわ。
840 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:42:11.06 ID:xj9RlcCA0.net] 0が偽なのにnoerrというイカれた慣習はどうして生まれたんだろうねぇ。
841 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 22:58:47.67 ID:DaiiMVNnx.net] 最初に誕生した OS、system/360 の JCLでも、正常は 0、警告が 4だったか 8だったかで、異常が 8だったか 16だったかだったな z/OSでも同じだろうけど 知らんけど
842 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 23:33:27.02 ID:sehGKr170.net] 幸福な戻り値はどれも似たものだが、不幸な戻り値はいずれもそれぞれに不幸なものである。
843 名前:デフォルトの名無しさん mailto:sage [2019/06/07(金) 23:33:41.86 ID:nzmV+Edn0.net] if (error == 0) で違和感ないじゃん
844 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 03:30:43.12 ID:KzIynz9K0.net] 0 informational 1 warning 2 error 3 severe 4 critical
845 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 11:21:36.15 ID:5iouJYEP0.net] 返り値0でエラーなしはUNIXのコマンド終了ステータス以来の慣習かな。 「正常終了」は状態が1種類しかないけど、失敗は「どう失敗したか」で 複数の状態があるから、正常で0、他の値はエラーコードってのは便利でしょ。 論理演算子の結果で true false の1と0は、論理学の数値表現を プログラム言語にそのまま写しこんだからじゃないかと。 関数は一般にエラー状態を返り値で返す、と思っていれば 正常 == 返り値0 == false は違和感ないかと。 このルールから外れてるのは「失敗時にNULLを返す」タイプの関数で、 結構たくさん存在するのが困ったところだけど。
846 名前:デフォルトの名無しさん [2019/06/08(土) 11:32:28.80 ID:7CBKOF2N0.net] Cでは同一のもとして動かせてしまうが そもそもエラーコードとboolを同一視してる時点で論外なんだが
847 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 11:38:57.76 ID:WG7jlf5q0.net] 論理型を別に設けずに整数型で代用してしまおうというアイデアはBやCの言語仕様をコンパクトに 抑えるのに役立ったが、今となってはプリプロセッサマクロと同じくらいの悪しき遺産だなぁ。
848 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 14:58:06.03 ID:KzIynz9K0.net] え、何か問題あるか?
849 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 15:35:48.39 ID:X+3AMWAUM.net] C99以降であれば_Bool型を使えばいいのでは?
850 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 15:41:42.45 ID:KzIynz9K0.net] ダメだこりゃ
851 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 15:41:57.08 ID:bm2ApAetM.net] 正常時1で異常時0を返す関数が混ざってたり 正常時ポインタで異常時ヌルポ返す関数があったり それらの関数の返り値を全部 if でチェックしててカオスだったことがあります
852 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 15:56:39.68 ID:KzIynz9K0.net] BOOLを返す関数が負数を返したかどうか調べにゃあかんやつとかな
853 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 16:38:04.87 ID:WG7jlf5q0.net] ワインバーグの本にあったなあ。ドル紙幣はみんな同じ色、同じサイズで見分けがつきにくいけど、 それが常識だと思っている人は、一定の確率で間違えてしまうことも世界の法則で仕方のない ことだと思っているとか。
854 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 17:13:44.27 ID:auwh2hzj0.net] >>827 GetMessage()の悪口はいくら言ってもよいぞ DWORDにしとけよ
855 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 18:39:07.71 ID:jm0tDZO60.net] >>826 カオスっていうかこれ普通じゃない? 標準ライブラリのラッパー書くとき互換性保つために0成功にするでしょ で他のオレオレライブラリはboolという
856 名前:デフォルトの名無しさん [2019/06/08(土) 18:53:36.19 ID:jXs/KV+s0.net] 戻り地がboolのときはtrueが成功 intのときは0が成功なんだよ
857 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 19:39:01.75 ID:ogfAGAzJ0.net] bool型ができたのはC99のときなので
858 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 19:42:23.71 ID:jm0tDZO60.net] boolぐらいなにもインクルードしなくても使わせてくれぽよ
859 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 19:54:54.89 ID:ogfAGAzJ0.net] 「歴史的理由」という奴
860 名前:デフォルトの名無しさん [2019/06/08(土) 21:28:56.66 ID:gCLo3iIIa.net] >>830 それのせいでPrelではシステムコールと同名の関数の返り値がいまいち統一取れてなかったりして、結局マニュアル見ながら個別に覚えざるを得なかったりする。 Perlはだいたいは1が成功でundefが失敗なんだけどね。(undefはCでのNULLみたいなもの。未定義を意味する。定義されてて値が0の時とは違うが、書き方によっては同じように扱えることもある)。
861 名前:デフォルトの名無しさん mailto:sage [2019/06/08(土) 21:58:16.60 ID:nbjDJ9kZa.net] 今C++にあるoptionalだっけ? あんな感じの有ってもいいな。かなりうざい感じになるから使わんか。
862 名前:デフォルトの名無しさん [2019/06/09(日) 11:06:53.62 ID:42ARNGRn0.net] インクルードをURLで引っ張ってこれたら面白いのに。
863 名前:デフォルトの名無しさん mailto:sage [2019/06/09(日) 11:17:01.45 ID:ZHA7gcDF0.net] 一発でウイルス仕込まれそう
864 名前:デフォルトの名無しさん [2019/06/09(日) 11:59:40.15 ID:W83DJxDE0.net] コスパ最強の副業「動画編集」で稼ぐ方法【生ハム登場】 https://www.youtube.com/watch?v=0ogHVUKoa8k 【最強の副業】動画編集で稼ぎ続ける人の条件【未来予想】 https://www.youtube.com/watch?v=e-IA4ePHzOs 【おすすめ副業・在宅ワーク】「動画編集」は初心者でも時給1,500円狙えます。 https://www.youtube.com/watch?v=8gYAqdSsI98&t=168s 【与沢翼】動画編集素人でも本気でやれば個人で月収1000万も夢ではないですよ。 実は動画ってすぐプロと同じクオリティで作れちゃうし月収20万はすぐですよ https://www.youtube.com/watch?v=ws55W45OLbE センスのいい映像を短時間で編集する方法 https://www.youtube.com/watch?v=k0TT4Tbf_Ec
865 名前:デフォルトの名無しさん [2019/06/09(日) 14:38:56.62 ID:zgQq0a060.net] >>837 /use/include ディレクトリをNFS マウントでもしとけ。
866 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 14:18:29.61 ID:suKt4vmPd.net] すみません、質問があります。 環境はlinuxです。 ある共有ライブラリlibA.soをロードするプログラムbがあります。 このプログラムbをlibA.so抜きでgccでビルドすることはできるでしょうか? もちろん実行時にはlibA.soは用意します。
867 名前:デフォルトの名無しさん [2019/06/11(火) 15:09:21.38 ID:UmxJxqMia.net] >>841 リンクされる関数やグローバル変数が全て揃ってれば誤魔化し効くのではないかな。
868 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 16:20:37.89 ID:X43Szptna.net] シンボルだけ定義したsoファイルを用意するのが普通ではないかと
869 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 18:35:03.43 ID:z8NS6dzQ0.net] ダミーファイルを用意とか、かっけえな
870 名前:デフォルトの名無しさん [2019/06/11(火) 20:38:50.54 ID:UmxJxqMia.net] そ、そうか?
871 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 21:26:50.36 ID:suKt4vmPd.net] ビルド用のsoファイルを用意する、でいこうと思います。ありがとうございました!
872 名前:デフォルトの名無しさん mailto:sage [2019/06/11(火) 22:01:48.05 ID:vnr40KfNa.net] スタブってやつね。 dlopen使うと基本そうなると思う。 もともと自動的なシンボル解決して
873 名前:る場合は無視できたかも。 [] [ここ壊れてます]
874 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 00:00:59.88 ID:82Q6hISi0.net] >>847 お前は何を言ってるんだ
875 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 02:05:00.40 ID:vWkgJgOw0.net] たぶん、DLL import, export みたいな定義ファイルさえあれば、コンパイルできるだろ?
876 名前:デフォルトの名無しさん [2019/06/12(水) 09:25:53.48 ID:apqCeTcNa.net] DLL? Windowsだとそうなの?
877 名前:デフォルトの名無しさん mailto:sage [2019/06/12(水) 10:40:58.95 ID:QpFBULjO0.net] a) dll import キーワードつきのヘッダでコンパイル DLLを読み込みシンボル解決する .lib をリンク 実行時には dll 読み込みをやってくれる (無いと文句言う) b) 自前で DLL読み込んで GetProcAddress で関ポにセットして、 その関ポを呼び出すラップ関数を用意 自前ロードしてるので、実行時に無い時別の処理の記述が可能になるん
878 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 13:22:19.29 ID:tXoihok+d.net] 大学でc言語を学び始めました ポインタが意味不明でした 何がわからないのかわからない
879 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 13:54:13.91 ID:wTJRUi3Ix.net] メモリとアドレスの概念が分かってないからじゃね?
880 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 19:07:04.64 ID:mXxRrk+K0.net] 現実世界にポインタと同じものを説明する概念がないから簡単な説明のしようがないんだよなぁ。住所録とか余計こんがらがるし。 素直に本を沢山読んでプログラムを組んで慣れるしか無い
881 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 19:27:38.29 ID:HQZYLHkVa.net] 本にページ数がない世界?
882 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 20:56:34.51 ID:8abVSTNa0.net] アドレスは&つけてprintfした時に出てくるやつでしょ? 箱のラベルみたいなのだとかなんとか言われた気がする メモリは単純に容量? 別関数で計算した値をmain関数に持ってくる時にポインタを使えばreturnがいらないだとかコピーじゃなくて直接数値を変えるから処理が楽だとか書いてあるけど結局普通に代入するのに比べて利点がよくわからない
883 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:10:17.33 ID:mvKDv9Bs0.net] タワーマンション
884 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:10:41.15 ID:HQZYLHkVa.net] 何かの容量と言ったときの「何か」がメモリです。 利点は基本的にないです。
885 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:22:11.61 ID:0e3y3dPM0.net] データが存在する場所
886 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:44:19.75 ID:VQ1VjdQ1M.net] みんな思い思いのモデルで遊んでるから、パパは箱モデル出しちゃうぞ
887 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:45:29.38 ID:vVgcrwZV0.net] うさみみハリケーンでメモリ覗いてチートしよう!
888 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 21:52:15.32 ID:o6WQvi940.net] 天使のような微笑みに 時は立ち止まる
889 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 22:05:37.40 ID:mXxRrk+K0.net] なんか分からない部分のコード示してもらわないと ここの有能な人たちもどう説明したらいいか分かんないから雑談始まったがw
890 名前:蟻人間 mailto:sage [2019/06/13(木) 22:14:30.76 ID:wtG0GGqp0.net] 1ビットが0か1かの二通りを表せる情報量。 1バイトは0〜255までの256通り(2の8乗)を表せる情報量で8ビットに等しい。 1バイトを複数並べたのがメモリーで、各バイトの位置がアドレス。
891 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 22:16:01.81 ID:dMX2AWSU0.net] このスレにエスパーいるの?
892 名前:蟻人間 mailto:sage [2019/06/13(木) 22:22:12.70 ID:wtG0GGqp0.net] アドレスに型情報を加えて、先頭アドレスを起点として配列のようにアクセス可能にしたものがポインタ。 しかし、配列は実体を要求するが、ポインタは実体を要求しない。ヌルポインタは、何も指し示さないポインタ。
893 名前:デフォルトの名無しさん mailto:sage [2019/06/13(木) 22:29:06.28 ID:o6WQvi940.net] ポインタ配列ってやると実体のない配列になるのかなw
894 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 00:57:04.32 ID:v+vUDnm40.net] ポインタ配列
895 名前:? ポインタの配列 *array[] 配列のポインタ (*array)[] [] [ここ壊れてます]
896 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 06:12:05.65 ID:hJXFGwRg0.net] “メモリ”って言葉がフラッシュメモリのような、 ストレージデバイスのイメージになってるのも 説明を難しくしてる要因かもしれないね。 メモリは記憶単位ごとに数字で番地が振られていて…と言っても、 「メモリってディレクトリ構造中のファイルとして記憶するんじゃないの?」 みたいな感じに、互いの言葉の意味がチグハグで。
897 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 06:41:21.97 ID:f7k/n5Cq0.net] RAMとROMの違いなんて今の時代説明しても分かる人の方が少ない気がする
898 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 07:27:48.00 ID:Q6PAXFreM.net] >メモリは記憶単位ごとに数字で番地が振られていて キャッシュメモリ「せやろか?」
899 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 07:30:51.51 ID:0tg6L2nj0.net] https://i.ytimg.com/vi/paQ3zIsz1-8/maxresdefault.jpg https://upload.wikimedia.org/wikipedia/commons/d/d2/Pamiec_bebnowa_1.jpg やっぱりコレを見せれば理解しやすいんでね?
900 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 08:11:51.98 ID:9CL7rguOx.net] >>872 磁気コアメモリと、右側はRAMACか?
901 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 08:31:34.65 ID:0nKPup2VM.net] 磁気ドラムだよ ランダムアクセスでさえないのにメインメモリにしたとかいう
902 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 09:02:07.63 ID:vN7LRDhO0.net] >>856 ポインタ=君と感覚を共有してる全く同性能の影分身だ。 君の価値が100万なら、影分身は1円で作れる。 ポインタのメリットは会社が君を働かせたい時、君を直接雇うと100万円かかるが、影分身を雇うと1円で済むわけだ。 影分身が働いてる間、君は家でエロゲでもしてればいい。 気をつけないといけないのは、仕事中、影分身の腕が切断されたら、エロゲやってる君の腕も切断されるし 影分身が死んだら君も死ぬ。 これ以上わかりやすい説明はないと思うが、どうよ?w
903 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 09:44:07.68 ID:y8r4DOsw0.net] 例えられても伝わらないとさらに混乱させるのが、ポインタと配列周辺の話
904 名前:デフォルトの名無しさん [2019/06/14(金) 10:03:42.87 ID:+nXqXsIga.net] >>875 分身と言ってしまうとそっくりな実体がもう一つあるかのように思ってしまうのではないか? やはり実体を指し示すものを連想させる何かにした方が良いのではないか?道標とか。
905 名前:デフォルトの名無しさん [2019/06/14(金) 10:26:13.82 ID:6se/aPBa0.net] このように、どうわかりやすく書こうとしてもどっかに不都合が生じるのがポインタの説明 素直にコンピュータの仕組みを勉強するしかないんや・・・
906 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 10:36:21.57 ID:9CL7rguOx.net] ポインタはWindowsのショートカットみたいなもの。 これでもまだ誤解されそうね。
907 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 11:45:14.96 ID:suWeiIcg0.net] インデックスレジスタを拡張したもの
908 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 12:26:01.65 ID:2kFHhEHgd.net] キャッシュとバッファの違いを教えてください
909 名前:蟻人間 mailto:sage [2019/06/14(金) 12:32:55.71 ID:lQGpZUNAd.net] キャッシュは次回のアクセスを高速化するためにデータを一時的に保存しておくこと。 バッファはデータを受け止めるために、保存場所を確保するためのメモリー領域。
910 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 14:56:26.65 ID:6Rxhp4270.net] アセンブラやらせてみる。
911 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 15:05:09.54 ID:AQvHkPsD0.net] >>881 文脈による 汎用機
912 名前:だと二次キャッシュをバッファストレージなんて言ったりすることもあるし [] [ここ壊れてます]
913 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 17:36:32.38 ID:TPMloxQtM.net] >>875 本体がパンツ下ろしたら影分身も職場でパンツ下ろすんですね分かります
914 名前:デフォルトの名無しさん [2019/06/14(金) 17:45:59.79 ID:zWOLB0k60.net] ポインタがよくわからないんだけど、普通にメモリアドレス==ポインタって認識なの? int i; int *p=&i; の時に変数iのポインタであるpっていういい方は正しいですか
915 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 17:52:24.52 ID:f7k/n5Cq0.net] メモリアドレスは格納されるけど メモリアドレス==ポインタっていうのは違う気がする nullだのvoidだのもあるし
916 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 17:58:41.54 ID:Soq0+PVxa.net] iのポインタを格納してるポインタ変数p 値自体を問題にするときはアドレスだが、プログラム中で操作の対象となってる場合はポインタって感じだな。
917 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:21:37.60 ID:Js4PARtC0.net] >>886 ポインタはメモリアドレスと型もってて メモリアドレスからのデータをその型として解釈する
918 名前:デフォルトの名無しさん [2019/06/14(金) 18:23:47.92 ID:zWOLB0k60.net] なるほど、なんとなくわかったありがとう。混乱の原因はポインタっていう言葉がいろんな使われ方してるからだった。
919 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:25:31.19 ID:Kaq8zorwa.net] こう書くとまた荒れそうだが、ポインターとはアドレスが入った変数である、というのは正しい。 NULLは0番地を特別扱いしてるだけだし、void *もあくまでアドレスだ。
920 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:32:50.01 ID:N06YB3IUM.net] >>887 nullはまだしもvoidは関係なくね?
921 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:34:58.75 ID:Js4PARtC0.net] 荒れる要素なくない? メモリアドレスを保持する整数と型を組合せてあるだけだし void*はアドレス保持するだけの変数って意味じゃないの
922 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:35:21.76 ID:6z9b86iK0.net] void *p; p++ を許すのは GCC拡張だっけか
923 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:37:46.52 ID:AQvHkPsD0.net] >>891 「正しい」とか書くと荒れる元にしかならん (初心者のうちは)…「という理解でいい」ぐらいにしとき
924 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:39:36.73 ID:BA+tS0rQa.net] >>891 NULLの件はそれ逆だろう。 実際の0番地を特別扱いにしているのではなく、「どこも指さない特殊なアドレス」を表記するために整数0を使用しているだけで、0番地が特別な訳ではないはず。まあ実際にメモリ割り当てで0番地を割り当てることはしないだろうけど。 void*も、型を指定しないポインタを表すのに使っている型の指定であり、アドレスというのはおかしい。
925 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:45:34.86 ID:Js4PARtC0.net] >>894 サイズどういう扱いなのそれ
926 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:48:29.67 ID:6z9b86iK0.net] >>897 確かポインタ演算時は1バイト (char) 扱いだったかな?
927 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 18:52:58.09 ID:Js4PARtC0.net] 1バイトなんか まあそりゃそうか
928 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 21:41:25.35 ID:WbpzR08B0.net] void*なんていらなくね?char*でいいじゃん 構造のわからないものは「バイト列」って意識でしょ?
929 名前:蟻人間 mailto:sage [2019/06/14(金) 21:47:11.03 ID:Qn7Uv1x90.net] >>900 void *がないとmemcpyに引数を渡すとき面倒。
930 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 21:51:26.70 ID:6z9b86iK0.net] double * には double * だけを許し char * や strucut foo * を渡したらアカンと 要求される型を厳しくチェックしようとすると 「ポインタだったら実体の型は何でもいい」 という指示を char * に含ますわけにはいかない
931 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 21:52:14.30 ID:sIZagWQx0.net] 汎用ポインタがchar*型になってたらコードレビューは絶対に通さないわ
932 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 22:42:50.69 ID:6se/aPBa0.net] 汎用ポインタというかvoid型という概念そのものが嫌い。 全てを厳密にやれ。言語を作る時点でまず関数に戻り値を強制すべきだったんだ。 ポインタわからん軍の原因はvoid型とかいう曖昧なせいなの
933 名前:ェあるせいなのも一理あろうて。 [] [ここ壊れてます]
934 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 23:06:06.10 ID:sIZagWQx0.net] >>904 関数型言語に行ってらっしゃい
935 名前:デフォルトの名無しさん [2019/06/15(土) 00:02:16.99 ID:n7CfuAo60.net] Kotlin もよろしく
936 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 01:25:34.80 ID:RN+u9pJY0.net] windowsにおいて setLocale(LC_ALL, "en_US.UTF-8"); が成功する環境と失敗する環境があるのですが何が原因かわかりません。。何かご存じの方いらっしゃらないでしょうか?
937 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 09:25:25.61 ID:oZ4xCIwS0.net] >>904 お前の好き嫌いなんてどうでもいいし、よくわからん時点ならvoid*なんて無視しとけばいいだけ この手の人は何故か全部を一気に理解しようとするけど今どきの言語仕様でそれやったら終わらんよ
938 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 09:37:31.78 ID:pAE5sudp0.net] 「俺の考える最強に分かりやすいポインタの説明」 ・・・無理
939 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 10:05:45.19 ID:QD7Sd0bs0.net] >>907 OSは?両方ともWindows10?
940 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 10:23:13.60 ID:T0BSudQv0.net] >>908 void君だろ C言語なら俺に聞け 148 https://mevius.5ch.net/test/read.cgi/tech/1537347410/37 37 名前:デフォルトの名無しさん (ワッチョイ f94f-yqSl)[sage] 投稿日:2018/09/22(土) 01:42:06.64 ID:16ZpsTnK0 >>36 マジでIDE使え。 そして貼るときはlanguageをCにしとけ。シンタックスハイライトが変わるから。 で、どれが分からんの? > enter > find > delete > show_all > delete_all mainはこの際分からなくていい。 最初に理解しないといけないのは show_all だ。 ただし細かいことを言ってもキリがないが、 > void show_all(void) なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ? さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。 普通は void show_all(tag_address* ta) だよ。 そうじゃないと複数のリストがあったときに使い物にならないだろ。 マジな話、このソースのレベルの本なら捨てた方がいい。 俺は大学の教材がいいと思うぞ。 (読んでないが)リストならググったら東工大とか出てきた。 www.is.titech.ac.jp/compview/clang/chap11.html
941 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 11:55:35.29 ID:hahimQeS0.net] 懐かしいな、void君
942 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 13:59:23.10 ID:RN+u9pJY0.net] >>910 コメントありがとうございます。 8と10で成功する端末があることを確認しています。失敗する端末は今のところ10だけです。 そして SetConsoleOutputCP(65001); を使用することで失敗する端末でもUTF-8をコンソールに表示でき、一応目的は達成できました。 調べてみると、結局のところwindowsではsetlocaleで2バイト以上文字は設定できないとのことだったのですが、ではなぜ成功する端末があるのか……
943 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 15:49:06.56 ID:fUxHfD4R0.net] 謎だな
944 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 16:57:06.86 ID:RWV4c9qt0.net] 引数voidって古いシステムの保守でたまに見るな
945 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 16:59:05.33 ID:5ne/m9/q0.net] と、古いシステムの保守なんかやったことねえやつがぬかすか
946 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 18:17:17.87 ID:ulIUfSMj0.net] 引数voidは今でも普通に使うけどな
947 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 18:22:29.22 ID:5ne/m9/q0.net] void show_all(); なんて書くやつ見かけたらなるべく距離を置く
948 名前: mailto:sage [2019/06/15(土) 18:40:21.75 ID:8bW7ANPO0.net] >>918 C++ ではそれは当たり前ですが…
949 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 18:42:04.96 ID:fAAVk5UIM.net] >>918 の場合 C++なら問題ない C言語だとちょっと不味い
950 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 18:46:57.27 ID:5ne/m9/q0.net] おまえからも距離を置きたいぜ ここをどこだと思っている C++なら無問題などと言わねばわからぬ者がいるとでも思っているのか
951 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 22:30:32.42 ID:BY4KYcRQ0.net] とりあえず、シングルステートでも返り値をboolにする俺がやってきましたよ。
952 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 02:14:21.54 ID:wRD2pOBha.net] ケースバイケースで使い分ける
953 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 08:10:06.75 ID:ORkp7ynDM.net] >>921 >>918 の意図が分かってない者がいるぞ さあどうする?
954 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 10:35:26.32 ID:jvyHVZd00.net] >>924 世も末だな 困ったもんだ
955 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 11:22:43.26 ID:RqGVrKm70.net] 大丈夫だよ ここを見ながらシステム作っている奴はいないから
956 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 13:20:19.90 ID:X7GbKeYn0.net] Cはvoid省略すると可変長引数扱いになるんじゃなかったっけ? C++は省略してもvoidだけど
957 名前: mailto:sage [2019/06/16(日) 13:35:27.88 ID:gDHKfsB60.net] >>927 無指定でどうこう、というのは確か C89 までの話だったかと C99 では C++ と同じく省略しても void と記憶しています
958 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 13:51:25.10 ID:Mp4zqsM90.net] >>928 破壊的変更が行われた仕様が回避できるなら回避すべきだな
959 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 13:58:56.49 ID:VBKycPxl0.net] >>928 記憶違いでしょ。変わってないよ。違うと言うなら出典確認してから来てね。 kikakurui.com/x3/X3010-2003-01.html#93 > ...関数定義の一部でない関数宣言子の識別子並びが > 空の場合,仮引数の個数及び型の情報がないことを指定する。
960 名前:デフォルトの名無しさん [2019/06/16(日) 15:14:33.98 ID:+bML8jLFa.net] >>915 新しく作るプログラムでも引数なしならvoidにするよ。 まあこの頃Cで作ることそのものが減ったけどな。
961 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 15:41:14.25 ID:rIa5AgZza.net] 入力がない関数ってのは関数ではないな
962 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 15:51:28.54 ID:eI7bdJXk0.net] >なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ? こんな汚物が上から目線で何かもの言ってるかと思うと反吐が出る さっさと消えてほしい
963 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 16:33:52.45 ID:wZzXbGgB0.net] >>932 なぜ入力がないと思ったんだ?
964 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 16:48:40.62 ID:xMbXVdd30.net] DCL20-C. 引数を受け付けない関数の場合も必ず void を指定する ttps://www.jpcert.or.jp/sc-rules/c-dcl20-c.html を見ると(かなり読み解きにくいんだけど)… プロトタイプ宣言では int func(void); ... 引数0個 int func(); ... 関数呼び出しでの引数の整合をチェックしない 関数定義では int func(void) {...} ... 引数0個 int func() {...} ... 引数0個 って具合に func() の解釈が一貫していない、 だから引数0個の関数は同じ形になるようにvoidをつけましょう、 という話に思える。 この辺が議論の混乱を生んでるんじゃないかな。 ついでに関数定義の int func() {...} の形式は廃止予定とも出てる。 プロトタイプの方は廃止予定ではない、ってことかな。
965 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 17:08:16.47 ID:jvyHVZd00.net] そこでjpcertを持ち出すのは興醒めだ どっかの馬の骨が「こうすべき」と主張してるってだけな話は 現実のマシンの動きとそれ束縛しているiso/iec9899でどうなのかという話とは論点が違う
966 名前:935 mailto:sage [2019/06/16(日) 17:32:48.77 ID:xMbXVdd30.net] >>936 JPCERTを引用したのは「プロトタイプ宣言と関数定義とで 引数
967 名前:部が空の関数 func() の引数の解釈が違う」って話を 根拠つきで引き出すためでな。 >>927-930 あたりの流れを受けて。 規格の文章が並べて載ってるので都合が良いのだ(読みにくいけど)。 実際のところ、JPCERTのルールっていうか提案には 俺も全面的に賛成してるわけじゃない。むしろ強く反発する部分もあったり。 [] [ここ壊れてます]
968 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:00:02.87 ID:jvyHVZd00.net] 必要ねえじゃん iso/iec9899の条文を引用して その箇所がどのように解釈できると 自分の言葉で言えばいいのを 虎の威を借る形でサボる怠慢を 読まされる側は付き合ってらんねー
969 名前:デフォルトの名無しさん [2019/06/16(日) 19:52:17.11 ID:5fyh92Dva.net] >>932 そうだね。関数ではないね。しかしCだと処理をまとめる方法が関数しかないから仕方がないね。
970 名前:デフォルトの名無しさん [2019/06/16(日) 20:02:46.68 ID:5fyh92Dva.net] まあしかし getchar() みたいにプログラムとは無関係な所から取ってきた値を返すとか、バッファやstatic変数で外部からアクセスできない変数の内容を返すみたいな処理は必要だから引数なしも必要だ。 グローバル変数やハードウエアの初期化処理だけまとめて書きたいなんて時にも使える。
971 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 20:22:18.78 ID:6QFVwEqYd.net] ○○Initialize() 的な関数の存在に違和感ないんだが
972 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 20:26:17.96 ID:rIa5AgZza.net] クラスのメンバーの操作だとしても、だったらそのクラスのコンテキストを渡すのが正しいだろうとは思うけどね。 現実としてはまあ規模による。
973 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 20:40:48.32 ID:Mp4zqsM90.net] プログラムの関数は数学の関数とは微妙に違うから仕方ない 仕方ないと思えない奴らが関数型言語を作った 兎に角Cでは本来の関数に制限するのは事実上不可能
974 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 20:47:50.76 ID:EhqtZL1+0.net] functionって関数の他に機能って意味もあるけど、英語圏の人はどちらの意味で使ってるんだろうね?
975 名前: mailto:sage [2019/06/16(日) 21:15:12.39 ID:gDHKfsB60.net] >>944 多分語義をわざわざ意識していないと思われ
976 名前:デフォルトの名無しさん [2019/06/16(日) 21:19:48.09 ID:paRCIAHRa.net] >>942 オブジェクト指向言語のクラスだとプロパティでゲッターやセッター作る事があるが、ゲッターは普通は引数なしだな。 で、そういう言語ではだいたいはメソッドの引数なしで ()にしとけばC言語での(void)と同じ意味になる。
977 名前:蟻人間 mailto:sage [2019/06/16(日) 21:39:10.07 ID:KLVL0nwc0.net] 機能という意味で言いたいときは、functionalityという単語もある。
978 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 22:26:00.96 ID:rIa5AgZza.net] ゲッターセッター自体が、本当にそれ要るのかって思うこと多いよ。 手元にインスタンス持ってるわけだしさ。
979 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 23:14:47.03 ID:2lhSAUjOM.net] ゲッターセッターはインスタンス変数を隠蔽化することでインスタンス間の結合強度を下げるのが目的 なんでもなんでもインスタンス内部の構造に直接アクセスするとOOPの意味がない
980 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 23:22:32.20 ID:rIa5AgZza.net] いや、ゲッター使うんだったら隠蔽できてないじゃん。
981 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 23:34:39.49 ID:Fv7+hlk/0.net] 昔ゲッターセッターってスレッドセーフにするための仕組みだと思ってた。 それくらいしか意味が思いつかなかった…
982 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 23:43:48.77 ID:3o8UCwiCa.net] そうね、なんか前後に処理を入れるくらいの使い方はある。 でもそもそもその値を使う処理をそのクラスに持たせるのが隠蔽ということだね。
983 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 23:45:38.60 ID:7nwjMCFt0.net] 今の仕組み上での利点としては GetterSetter作ることで インターフェースに適合させれるようになる Cは知らん
984 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 00:04:18.25 ID:0K02i6cy0.net] Cのスレで
985 名前:言っても仕方ないが オブジェクト指向においてクラス外からフィールドに直接アクセスするのは禁じ手だぞ [] [ここ壊れてます]
986 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 00:10:42.98 ID:seiOMGnS0.net] getter/setterなんてうざいだけだぜ メンバ変数直でいいじゃん
987 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 00:23:14.51 ID:YSrJE9j8a.net] >>954 そうそう、だからゲッターは駄目なんだよね。 C++でclassとstructのアクセス範囲が異なる理由がわかってない人が多すぎる。
988 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 00:26:17.86 ID:0K02i6cy0.net] >>955 お前には一生オブジェクト指向は無理だな
989 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 00:39:11.63 ID:YSrJE9j8a.net] まあ、ゲッター使うのはバカ。 データとメソッドを集約しないのはオブジェクト指向ではない。 ゲッターとセッターしかないオブジェクトなんて構造体で充分。
990 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 01:11:23.59 ID:J2deS77t0.net] たしかPythonだとgetterもsetterも推奨されてないんだっけ?
991 名前:デフォルトの名無しさん [2019/06/17(月) 02:13:20.34 ID:BSqpudUb0.net] 文字列クラスで文字数返すやつなんかはゲッターの一種だが、ああいうのは必用だよな。 文字数指定する事が出来るようにする場合もセッター必用だよな。
992 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 06:18:25.03 ID:6C3tyyZH0.net] データメンバ直でもラッパーを挟めるなら問題なし
993 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 07:27:38.45 ID:yl5KJ/vEM.net] 問題ないというよりも下手な設計をとりあえずカプセル化する時はラッパー被せて誤魔化すしかない
994 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 08:27:04.42 ID:ikLTlFyV0.net] ゲッタって仮想関数にする?
995 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 08:52:31.79 ID:sn1adIo3a.net] ラッパーって関数に対して被せるもんだろ? メンバー変数のラッパーってなんだよ
996 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 08:57:03.61 ID:mR1b1vjg0.net] 「メンバ書き換えたから更新よろしくな関数」の呼び出しで やっと内部状態が変更するようなしくみ?
997 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 09:09:34.98 ID:8UjaS7YF0.net] >>960 ゲッターとセッターは使わないのが主流 とくにゲッターとか名前からしておっかねーだろ
998 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 09:34:11.11 ID:sn1adIo3a.net] 真とかエンペラーとかいろいろあるしな
999 名前:デフォルトの名無しさん [2019/06/17(月) 12:37:41.39 ID:WHxj8IY7a.net] >>966 え?でも値のセットや取得時に何か処理が必要なやつはゲッターやセッターではないの? 名前がそれっぽくなくて普通のメソッドだったとしても機能としてはそうなるよな。
1000 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 12:44:11.30 ID:6pEy3XEna.net] >>968 だから、何故値を取得する必要があるのかと
1001 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 13:06:30.69 ID:0K02i6cy0.net] 値を取得する必要ガーとか馬鹿なのか? 主要言語の標準ライブラリにGetterを含まないクラスとかまず無いぞ
1002 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 13:27:51.70 ID:6pEy3XEna.net] >>970 引数のvoid見たこともないのによくそんなこと言えるな…
1003 名前:デフォルトの名無しさん [2019/06/17(月) 13:33:44.73 ID:WHxj8IY7a.net] >>969 例えばファイルデスクリプタのようなものもそのデスクリプタによって識別されるファイルに関する情報の読み書きをするオブジェクトと言えるが、それ使ってファイルのバイト数を取得するとかデータを読み書きするとか、普通にやるよね。
1004 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 13:42:27.76 ID:qKjcjk6x0.net] 猿でもわかるポインタって本誰か出せよ
1005 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 14:24:17.06 ID:6pEy3XEna.net] >>968 そのオブジェクトの中で密接にデータと関連する処理だったらゲッターは使わんでしょう。this->hogeを直接使うだけ。 あとたぶんあなたの場合はセッターゲッターの神髄を知らんと思う。単に構造体のメンバーにアクセスするだけのメソッドをイメージしてもらえれば。
1006 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 14:25:01.27 ID:6pEy3XEna.net] 974は972あてね
1007 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 14:25:36.67 ID:FBMbqlks0.net] >>968 https://dotup.org/uploda/dotup.org1874697.jpg ゲッターはあぶない
1008 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 14:40:56.45 ID:lfEwbGXOM.net] 同一インスタンス内なら余計なことしなくても直接アクセスできる セッターゲッターは他のインスタンスの変数にアクセスするための手段 オブジェクト間のメッセージパッシングにセッターやゲッターを利用する
1009 名前:デフォルトの名無しさん [2019/06/17(月) 14:41:55.67 ID:WHxj8IY7a.net] >>974 あー。それでもリードオンリーにしたい時に言語にその機能がないならゲッターだけ作るよね。 Kotlinの場合はvalで済んじゃってしかも自動でゲッター作られてるけど。 で、真髄って何?
1010 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 15:00:44.76 ID:6pEy3XEna.net] >>978 リードオンリーとか言わず、読ませなきゃいいじゃん
1011 名前:デフォルトの名無しさん [2019/06/17(月) 15:49:21.53 ID:WHxj8IY7a.net] >>979 上で書いた文字列クラスの場合の文字数とかファイルのバイト数とか、外部から読めないとまずいものがあると思うんだが。
1012 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 15:57:28.98 ID:6pEy3XEna.net] >>980 たとえばstd::stringのメソッドでgetってついてるのget_allocatorとgetlineくらいだよね。setなんてないし。 ゲッター感のあるやつ無くない?要らないのでは?
1013 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 16:10:03.98 ID:qeDnhEK2M.net] メンバー変数はreadonlyなどの属性ではなくてprivateアクセス権限を設定して他オブジェクトから隠蔽するのが一般的
1014 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:25:37.86 ID:0K02i6cy0.net] なんでC++とかいう後付けのオブジェクト指向もどき言語で延々と語ってるんだろうか…
1015 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:48:43.23 ID:6pEy3XEna.net] >>983 そりゃもう、javaについで保守的だから。 他の意識高い感じの言語だとゲッターセッターなんて発想はありえないでしょ。
1016 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:52:05.72 ID:0K02i6cy0.net] >>984 保守的?単なる継ぎ接ぎの欠陥言語だぞ C#だとプロパティで隠蔽されてるが結局はGetter/Setterだな
1017 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 18:00:37.93 ID:6pEy3XEna.net] >>985 つまり、Cの構造体アクセスは実質ゲッターセッターだという主張か?
1018 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 18:01:53.33 ID:0K02i6cy0.net] >>986 お前は何を言ってるんだ…
1019 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 18:11:27.38 ID:6pEy3XEna.net] >>987 引数void馬鹿を馬鹿にしてんだよ。わからんか?
1020 名前:蟻人間 mailto:sage [2019/06/17(月) 18:13:51.25 ID:Qf1//+vQd.net] そろそろ次のスレ
1021 名前:デフォルトの名無しさん [2019/06/17(月) 18:24:49.71 ID:3L1/L9kLa.net] >>981 うーん。C++のクラスで喩えられてもすがわからんなあ。C++この頃全然やってないし。 昔ちょっとC++Builder使ったことあるがDelphiの延長線上の使い方しかしなかったし。 とりあえずJavaで言うとそれは何にあたるんだ? Kotlinでもいいぞ。
1022 名前:デフォルトの名無しさん [2019/06/17(月) 18:26:16.26 ID:3L1/L9kLa.net] すが、じゃねえ、すぐだ。 スマホだと間違いが変になるな。
1023 名前:デフォルトの名無しさん [2019/06/17(月) 18:28:01.53 ID:3L1/L9kLa.net] 次スレ C言語なら俺に聞け 152 https://mevius.5ch.net/test/read.cgi/tech/1560763630/
1024 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 19:42:03.79 ID:biel+EqR0.net] >>992 >>2-3 あたりの 「次スレを作るときは…」の説明を書き足さなくて良いのかしら? 自分、その辺の正しい立て方を知らず下手に書き加えられないので指摘だけ。
1025 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 20:01:23.71 ID:vIcnvKOP0.net] IDを非表示にする場合 !extend:none::1000:512 IDを表示し、強制コテハンは表示しない(5ch標準設定と同じ) !extend:checked::1000:512 IDを表示し、IPアドレスを表示 !extend:checked:vvvv:1000:512 IDを表示し、強制コテハンを表示 (レスの名前欄に「ワッチョイ」「スプー」「ササクッテロ 」などのニックネームがつく) !extend:checked:vvvvv:1000:512 ← 今はこれ IDを表示し、IPアドレスと強制コテハンを表示 !extend:checked:vvvvvv:1000:512 RONIN使えばまた表示を消せるので、強制とは言いがたいが
1026 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 20:16:07.33 ID:/ODDlXVN0.net] ああワッチョイ消してる奴ってRONIN使ってるのか 知らなかったな
1027 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 20:27:33.84 ID:IK9o4iD50.net] 密結合を避ける
1028 名前: mailto:sage [2019/06/17(月) 20:55:12.93 ID:mDiaA7dQ0.net] >>995 RONIN 餅ですがワッチョイの消し方がわからないのです、消すつもりもないのですが…
1029 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 21:23:19.93 ID:J2deS77t0.net] 名前欄に!slip:verboseじゃないの? コテハンとかはどうなるかまでは知らないけど
1030 名前: mailto:sage [2019/06/17(月) 21:26:41.57 ID:mDiaA7dQ0.net] >>998 どれどれ、試してみましょうか…
1031 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 21:29:58.20 ID:6C3tyyZH0.net] >>945 そんなことはどうでもいい C99ではどうたらを早く説明しろ 逃 げ ん な こ ら !
1032 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 76日 10時間 6分 21秒
1033 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています