0からの、超初心者C++相談室
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/11/12(月) 14:55:13.35ID:Tf74ZWQr 何にも知らない0からの出発、超初心者のためのC++相談室
567デフォルトの名無しさん
2023/11/12(日) 13:14:04.39ID:xpiKETrj > 基底クラスのポインタで派生クラスのオブジェクトをポイントできるというものです。
> オブジェクトのボインタを使う場面があまりないので用途を聞きました。
アップキャストのことだろうかね。
必ずといっていいほど使う機会がある。関数の引数にオブジェクトを渡すときとか
> オブジェクトのボインタを使う場面があまりないので用途を聞きました。
アップキャストのことだろうかね。
必ずといっていいほど使う機会がある。関数の引数にオブジェクトを渡すときとか
568デフォルトの名無しさん
2023/11/13(月) 06:27:48.00ID:qbVz2ceg >>561 は、最初から必要数が決まっているオブジェクトしか作ったことがないのかな。
リストやツリー構造を自作していれば、①が必要なケースは分かると思うけど。
リストやツリー構造を自作していれば、①が必要なケースは分かると思うけど。
569デフォルトの名無しさん
2023/11/13(月) 10:31:45.02ID:IRswNIWu >>567
型チェックしなきゃ危険だけどな
型チェックしなきゃ危険だけどな
570デフォルトの名無しさん
2023/11/13(月) 13:26:36.10ID:qAieNn1D uniqu_ptr
571デフォルトの名無しさん
2023/11/13(月) 18:54:22.80ID:CCXWxw1E572デフォルトの名無しさん
2023/11/13(月) 23:59:54.01ID:RLYu3oMv573デフォルトの名無しさん
2023/11/14(火) 00:03:40.68ID:F1cdKor4 >>567
だいたい参照で済んでしまいます
だいたい参照で済んでしまいます
574デフォルトの名無しさん
2023/11/14(火) 12:46:18.30ID:SRCspH78 mallocもnewも使ったこと無いってやばいぞ
575はちみつ餃子 ◆8X2XSCHEME
2023/11/14(火) 15:58:08.40ID:oTbgWDDI new 演算子はオーバーロードも出来て、型ごとにメモリの確保の仕方を変えるといったようなことも出来る。
メモリの確保と値の構築を別のレイヤとして定義できるということに意味がある。 (いわゆる関心の分離?)
低レイヤでも便利な場面はたぶんある。
分離する甲斐がないほど小規模ならべた書きが悪いわけじゃないけど
あえてべた書きという設計を選ぶってのとなんもわからんで使わないってのでは違う。
知っておくに越したことはないよ。
メモリの確保と値の構築を別のレイヤとして定義できるということに意味がある。 (いわゆる関心の分離?)
低レイヤでも便利な場面はたぶんある。
分離する甲斐がないほど小規模ならべた書きが悪いわけじゃないけど
あえてべた書きという設計を選ぶってのとなんもわからんで使わないってのでは違う。
知っておくに越したことはないよ。
576デフォルトの名無しさん
2023/11/14(火) 21:59:36.46ID:WxE96Zj2 空配列を用意してそれを順繰り使い回す
チープなCPUでは必須の方法
チープなCPUでは必須の方法
577デフォルトの名無しさん
2023/11/14(火) 22:15:51.21ID:VpxEmvp/ RAM2KBでmallocが必要かどうか
578デフォルトの名無しさん
2023/11/15(水) 09:06:17.34ID:vh+zgKB1 よく
A a = new A();
a->b();
delete a;
みたいに生成してすぐ解放ってのがありますけど、
A a;
a.b();
じゃ駄目なんでしょうか。前者に何のメリットがあるんでしょうか。
A a = new A();
a->b();
delete a;
みたいに生成してすぐ解放ってのがありますけど、
A a;
a.b();
じゃ駄目なんでしょうか。前者に何のメリットがあるんでしょうか。
579デフォルトの名無しさん
2023/11/15(水) 09:39:21.05ID:88mXe6hW 後者はスタックを消費するから A が巨大なオブジェクトだったら困るとかかな
580デフォルトの名無しさん
2023/11/15(水) 09:40:08.83ID:7t1hSBTd581デフォルトの名無しさん
2023/11/15(水) 10:25:46.06ID:2QF9cM/v スタック?
そんな所にゃ領域取らないだろ
そんな所にゃ領域取らないだろ
582デフォルトの名無しさん
2023/11/15(水) 16:06:06.00ID:rnHf5KLb 何したらここの人らみたいにプログラム詳しくなれるの?PC98からやらなきゃダメ?
583はちみつ餃子 ◆8X2XSCHEME
2023/11/15(水) 16:35:01.46ID:k729Xl/N >>578
> ありますけど、
ないよ……。
少なくともそう頻繁にはない。
あるとしたら >>579 が指摘するように A が特に巨大な場合というのはひとつの可能性。
ただ、巨大になるのがわかってるならリソースを分割して A の中で
上手いことやりくりする (A 自体の大きさは抑える) べきで、
クラスを使う側で配慮しなきゃならないのは普通は悪い設計だと思う。
第二の可能性として、 new 演算子をオーバーロードして
そのオブジェクトがメモリの特定の場所に対応づけられる場合。
メモリバス経由でデバイスと接続するようなアーキテクチャもまあまあ有るから
それを C++ 上ではオブジェクトのように抽象化するということはあるかもしれない。
でもそれは低いレイヤだけの話で、
適当にラップするクラスを作ってもうちょっと抽象度の高いクラスを挟むのが普通だと思う。
> ありますけど、
ないよ……。
少なくともそう頻繁にはない。
あるとしたら >>579 が指摘するように A が特に巨大な場合というのはひとつの可能性。
ただ、巨大になるのがわかってるならリソースを分割して A の中で
上手いことやりくりする (A 自体の大きさは抑える) べきで、
クラスを使う側で配慮しなきゃならないのは普通は悪い設計だと思う。
第二の可能性として、 new 演算子をオーバーロードして
そのオブジェクトがメモリの特定の場所に対応づけられる場合。
メモリバス経由でデバイスと接続するようなアーキテクチャもまあまあ有るから
それを C++ 上ではオブジェクトのように抽象化するということはあるかもしれない。
でもそれは低いレイヤだけの話で、
適当にラップするクラスを作ってもうちょっと抽象度の高いクラスを挟むのが普通だと思う。
584デフォルトの名無しさん
2023/11/15(水) 18:55:56.04ID:aqUxtLPE 超初心者スレで揚げ足とったり、マウントしたり
585デフォルトの名無しさん
2023/11/15(水) 19:46:52.63ID:O3I3kWYX >>582
何か作ってるうちに嫌でも詳しくなるよ
何か作ってるうちに嫌でも詳しくなるよ
586はちみつ餃子 ◆8X2XSCHEME
2023/11/15(水) 21:31:49.26ID:k729Xl/N PC9801 時代を知ってる人は色々と詳しいと思うがその知識が役立っているというわけでもなくて、 PC9801 時代からの三十年くらいあれば詳しくなって当たり前ってだけだぞ。
たくさんの知識を身に付けるにはたくさん学ぶというシンプルな話。
たくさんの知識を身に付けるにはたくさん学ぶというシンプルな話。
587デフォルトの名無しさん
2023/11/16(木) 11:26:46.68ID:QXdh7keC 当時は役に立ったけど今はオワコンの技術と
今でも役に立ってる技術と
どっちが割合多い?
今でも役に立ってる技術と
どっちが割合多い?
588デフォルトの名無しさん
2023/11/16(木) 11:55:31.84ID:nxuWB9A/ 「技術は陳腐化するが考え方は永遠である」
589はちみつ餃子 ◆8X2XSCHEME
2023/11/16(木) 14:01:30.65ID:brAf4s3Y 新しい技術的流行が昔からあったやつの焼き直しってことは珍しいことじゃない。
「なんや、結局は××やないか」というときに××自体が廃れていてもう使わなくても
理解のためには役立っているのでオワコンとも役に立ってるとも言えたりする。
「なんや、結局は××やないか」というときに××自体が廃れていてもう使わなくても
理解のためには役立っているのでオワコンとも役に立ってるとも言えたりする。
590デフォルトの名無しさん
2023/11/16(木) 15:18:16.01ID:QXdh7keC ActiveXってCOMだよね
COMってOLEだよね
COMってOLEだよね
591デフォルトの名無しさん
2023/11/20(月) 15:56:09.22ID:QJSPRwrd こんにちは坂本と申します。
C++を0から勉強したく書き込み致しました。
私ごとですが先月定年退職し、やっと自由な時間がもてる様になりました。
在職中ずっとプログラミングの勉強をしたかったのですが子育てや職場がプラントの電気機械保全業務の3交代だった為に定年後を楽しみに我慢してまいりました。
プログラミングの知識は全くなく制御盤のPLCでニーモニック語でリストプログラミングをするぐらいしか経験はありません。
有料でもかまいませんので何回でも質問ができ、すぐに返答と解説をして頂けるサービスや学習機関がございましたら教えて頂きたく書き込ませてもらいました。
漠然とした質問で申し訳ありませんが今月よりプログラミングの勉強を独学で始めましたが質問できる知り合いもいなく困り果てております。
長文失礼致しました。
C++を0から勉強したく書き込み致しました。
私ごとですが先月定年退職し、やっと自由な時間がもてる様になりました。
在職中ずっとプログラミングの勉強をしたかったのですが子育てや職場がプラントの電気機械保全業務の3交代だった為に定年後を楽しみに我慢してまいりました。
プログラミングの知識は全くなく制御盤のPLCでニーモニック語でリストプログラミングをするぐらいしか経験はありません。
有料でもかまいませんので何回でも質問ができ、すぐに返答と解説をして頂けるサービスや学習機関がございましたら教えて頂きたく書き込ませてもらいました。
漠然とした質問で申し訳ありませんが今月よりプログラミングの勉強を独学で始めましたが質問できる知り合いもいなく困り果てております。
長文失礼致しました。
592デフォルトの名無しさん
2023/11/20(月) 19:07:01.26ID:UNSN9Hhc >>590
DDEは?
DDEは?
593デフォルトの名無しさん
2023/11/21(火) 00:24:28.42ID:cXhp/VaI C/C++ はポインターがあるから、ややこしい。
10年やっても無理
Ruby をやれ。
半年で、Ruby on Rails も出来る
10年やっても無理
Ruby をやれ。
半年で、Ruby on Rails も出来る
594デフォルトの名無しさん
2023/11/21(火) 11:11:38.44ID:HSO31doi 神社code
595デフォルトの名無しさん
2023/11/21(火) 14:22:46.70ID:tYm3I+7J ポインターが分からない奴は
プログラムを組む資格がない
プログラムを組む資格がない
596はちみつ餃子 ◆8X2XSCHEME
2023/11/21(火) 17:27:32.66ID:4ADiN9xr ちゃんとした本があれば独学でそんなに困らないと思うけどな。
入門書の各章をじっくり読んで理解してから次の章に進むみたいな学習法をしているなら
詰まったときにどうしていいかわからなくなりがちなのでやめたほうがいいと思う。
色んな要素が相互に絡むので順番通りに学べるようなものじゃないから。
理解できなくてもたくさん詰め込んでいけばその内に繋がりがわかってくる。
「最初は」熟考しなくてもいい。 入ってない知識が関連するなら考えてもどうせわからん。
入門書の各章をじっくり読んで理解してから次の章に進むみたいな学習法をしているなら
詰まったときにどうしていいかわからなくなりがちなのでやめたほうがいいと思う。
色んな要素が相互に絡むので順番通りに学べるようなものじゃないから。
理解できなくてもたくさん詰め込んでいけばその内に繋がりがわかってくる。
「最初は」熟考しなくてもいい。 入ってない知識が関連するなら考えてもどうせわからん。
597デフォルトの名無しさん
2023/11/21(火) 17:38:45.53ID:oh7zlSJI598デフォルトの名無しさん
2023/11/21(火) 18:05:44.93ID:tYm3I+7J ポインター: 変数が入っているアドレスの数字
なんも難しいことはない
なんも難しいことはない
599デフォルトの名無しさん
2023/11/21(火) 18:24:30.60ID:fyFN08Ef インデックスって言えば分かる?
コンピュータにあるメモリー全体のインデックス番号
コンピュータにあるメモリー全体のインデックス番号
600デフォルトの名無しさん
2023/11/21(火) 18:35:32.85ID:Ai4yJ31G 俺も最初全然わからなかったけどC言語ポインタ完全制覇のおかげで覚えた
601デフォルトの名無しさん
2023/11/21(火) 19:20:18.31ID:JkIDzJ0A Java や C# にもポインタはあるしポインタを理解できなかったら他の言語も使えないよ
ポインタ自体は難しくないんだけど C/C++ ではポインタ演算できちゃうのが鬼門なんだよね
ポインタ自体は難しくないんだけど C/C++ ではポインタ演算できちゃうのが鬼門なんだよね
602デフォルトの名無しさん
2023/11/21(火) 20:49:14.51ID:TIZNoRj+ N88-BASICにポインタあったっけ?
603デフォルトの名無しさん
2023/11/21(火) 20:53:06.63ID:TIZNoRj+ ポインタの文法なんて入門書には必ず説明があるので直ぐ分かるとして
俺が初期に読んだ数冊の入門書には
それがプログラミングでどう役に立つのかが示されてなくて
悶々としながら読んでいたなぁ
俺が初期に読んだ数冊の入門書には
それがプログラミングでどう役に立つのかが示されてなくて
悶々としながら読んでいたなぁ
604デフォルトの名無しさん
2023/11/21(火) 21:38:13.97ID:fyFN08Ef ポインターなんて処理が糞遅いCPUをいかに速く動かすかって事以外に意味が無いからなぁ
605デフォルトの名無しさん
2023/11/21(火) 23:15:10.49ID:mJ6deMbY std::string str = "abc";
①str = str + "dd";
②str = "dd" + str;
これらの記述は有効のようです。
①の右辺はstr.operator+("dd");
と解釈でき理解できます。
②の右辺は "dd".operator+(str);
と書きかえるとこれは無効に見えます。
std::stringのoperator+のプロトタイプを調べたところテンプレートが駆使されており私では読めませんでした。
②が有効なのは、テンプレートの仕組み?でそう書けるようにつくられているからですか。
①str = str + "dd";
②str = "dd" + str;
これらの記述は有効のようです。
①の右辺はstr.operator+("dd");
と解釈でき理解できます。
②の右辺は "dd".operator+(str);
と書きかえるとこれは無効に見えます。
std::stringのoperator+のプロトタイプを調べたところテンプレートが駆使されており私では読めませんでした。
②が有効なのは、テンプレートの仕組み?でそう書けるようにつくられているからですか。
606はちみつ餃子 ◆8X2XSCHEME
2023/11/22(水) 06:21:16.63ID:xG0rhWaa >>605
非メンバ関数として定義されている。
つまり
str=std::operator+("dd", str);
に相当することをやってる。
メンバ関数として定義すると不都合が起こるから std::complex とかも非破壊的な二項演算子は非メンバ関数として定義するのが通例だよ。
非メンバ関数として定義されている。
つまり
str=std::operator+("dd", str);
に相当することをやってる。
メンバ関数として定義すると不都合が起こるから std::complex とかも非破壊的な二項演算子は非メンバ関数として定義するのが通例だよ。
607デフォルトの名無しさん
2023/11/23(木) 18:16:14.60ID:yQq1Seno >>606
本を見直したらfriendにするといい等ありました。
第1引数+第2引数、という記述があり、2個の引数を持つ+演算子関数が定義されている場合はそれが呼び出される決まりになっているのですね?
本を見直したらfriendにするといい等ありました。
第1引数+第2引数、という記述があり、2個の引数を持つ+演算子関数が定義されている場合はそれが呼び出される決まりになっているのですね?
608デフォルトの名無しさん
2023/11/23(木) 18:17:35.84ID:yQq1Seno stringから離れて一般的な質問です。↑
609はちみつ餃子 ◆8X2XSCHEME
2023/11/23(木) 20:11:53.97ID:V52ACnUy >>607
そう。非メンバ関数として二つの演算子を受けとる operator+ があれば a+b みたいに書いたときに operator+(a,b) に読み替えられると考えてよい。
(全ての演算子を非メンバ関数として定義できるわけではない。)
余談だけど ADL という変な規則があるのは演算子が名前空間修飾できないことに対処する必要があるというのが理由のひとつで、自分が定義するクラスではこれが上手いこと作用するように設計すると便利なこともあるかもね。
そう。非メンバ関数として二つの演算子を受けとる operator+ があれば a+b みたいに書いたときに operator+(a,b) に読み替えられると考えてよい。
(全ての演算子を非メンバ関数として定義できるわけではない。)
余談だけど ADL という変な規則があるのは演算子が名前空間修飾できないことに対処する必要があるというのが理由のひとつで、自分が定義するクラスではこれが上手いこと作用するように設計すると便利なこともあるかもね。
611デフォルトの名無しさん
2023/11/23(木) 20:15:11.03ID:0De2U7us 最小のサンプルコードを書いて自分で試すと分かるし身につくよ
612はちみつ餃子 ◆8X2XSCHEME
2023/11/23(木) 20:49:41.10ID:V52ACnUy 書いてみるというのは賛成。
でもあくまでも学んでから確かめるために書くのであって動作から言語仕様を推測したりはしないように。
C++ には未定義とか処理系定義とかがいっぱいあるからテキトーに書いたプログラムの結果が保証された動作とは限らないから。
でもあくまでも学んでから確かめるために書くのであって動作から言語仕様を推測したりはしないように。
C++ には未定義とか処理系定義とかがいっぱいあるからテキトーに書いたプログラムの結果が保証された動作とは限らないから。
613デフォルトの名無しさん
2023/11/25(土) 11:27:01.67ID:rcrc48ZO >>612
>でもあくまでも学んでから確かめるために書くのであって動作から言語仕様を推測したりはしないように。
横から悪いがこれには反対させてもらう
もちろん動作からの仕様の決めつけは良くないが、人間は学習する動物なので書いて動作を見てこそ上達するんだよ
丸暗記だけで理解したと勘違いしてるやつが昨今多い(そしてそういう奴に限って何も作ってない)ので、そういうのを後押しはしないで欲しい
>でもあくまでも学んでから確かめるために書くのであって動作から言語仕様を推測したりはしないように。
横から悪いがこれには反対させてもらう
もちろん動作からの仕様の決めつけは良くないが、人間は学習する動物なので書いて動作を見てこそ上達するんだよ
丸暗記だけで理解したと勘違いしてるやつが昨今多い(そしてそういう奴に限って何も作ってない)ので、そういうのを後押しはしないで欲しい
614デフォルトの名無しさん
2023/11/25(土) 11:52:38.86ID:rcrc48ZO というか、自分の認識の間違いに気づくのもまた書いて試した時だからね(まれにコンパイラのバグだったりもするけど)
人間が頭の中で考えたことなんか穴だらけなんだから書いて試せるなら真っ先に試した方がいい
人間が頭の中で考えたことなんか穴だらけなんだから書いて試せるなら真っ先に試した方がいい
615デフォルトの名無しさん
2023/11/25(土) 12:13:14.81ID:vlVh3gWj617デフォルトの名無しさん
2023/11/25(土) 12:47:19.78ID:rKTwm3uz618デフォルトの名無しさん
2023/11/25(土) 12:50:17.30ID:rKTwm3uz619デフォルトの名無しさん
2023/11/25(土) 12:54:57.59ID:rKTwm3uz620はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 13:45:51.01ID:BXmPXb0v621デフォルトの名無しさん
2023/11/25(土) 13:56:27.70ID:vlVh3gWj 「学んでから確かめるために書く」
↑反対されてるのはここでしょ
これどうなるんだろう?動かしてみよう!なるほどこうなるのか!という学び方でもいいと思う
あなたが言ってるのは「これどうなるんだろう?」ではダメで「こうなるはずだ!」と学んでから動かせってことだよね?
それは初心者には結構むずかしい
↑反対されてるのはここでしょ
これどうなるんだろう?動かしてみよう!なるほどこうなるのか!という学び方でもいいと思う
あなたが言ってるのは「これどうなるんだろう?」ではダメで「こうなるはずだ!」と学んでから動かせってことだよね?
それは初心者には結構むずかしい
622はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 15:39:30.62ID:BXmPXb0v >>621
> これどうなるんだろう?動かしてみよう!なるほどこうなるのか!という学び方でもいいと思う
私が言いたいのは推測できるものではないというところが主旨で、
自分が色々やってみたことが不確かな推測であることを認識した上で
きちんとした資料にあたって確かめるという順序でもかまわないとは思うよ。
出来るのならば。
やってない人が多いように私には見えているから否定的に言ってるわけだけど。
> 初心者には結構むずかしい
訓練せずに他のことをしてても出来るようにはならないでしょ。
やらなきゃずっと難しいよ。
C++ は複雑怪奇かつ規格改訂もあるのでベテランでも頻繁に仕様を参照するのが普通なわけで、
資料を参照するのを後回しにするような人間が後にそのような人間に変われるとは思わない。
> これどうなるんだろう?動かしてみよう!なるほどこうなるのか!という学び方でもいいと思う
私が言いたいのは推測できるものではないというところが主旨で、
自分が色々やってみたことが不確かな推測であることを認識した上で
きちんとした資料にあたって確かめるという順序でもかまわないとは思うよ。
出来るのならば。
やってない人が多いように私には見えているから否定的に言ってるわけだけど。
> 初心者には結構むずかしい
訓練せずに他のことをしてても出来るようにはならないでしょ。
やらなきゃずっと難しいよ。
C++ は複雑怪奇かつ規格改訂もあるのでベテランでも頻繁に仕様を参照するのが普通なわけで、
資料を参照するのを後回しにするような人間が後にそのような人間に変われるとは思わない。
623デフォルトの名無しさん
2023/11/25(土) 16:15:59.30ID:vlVh3gWj 「やってない人が多いように私には見えている」
多くの人が出来てないことを初心者に求めてもねェ
多くの人が出来てないことを初心者に求めてもねェ
624はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 16:27:29.63ID:BXmPXb0v625デフォルトの名無しさん
2023/11/25(土) 16:42:06.01ID:vlVh3gWj 初心者に対して「言語仕様を推測したりしないように」「学んでから確かめるために書く」って言ってたよね
言語仕様を理解してからコードを書けってことでしょ?
言語仕様を理解してからコードを書けってことでしょ?
626デフォルトの名無しさん
2023/11/25(土) 16:49:08.14ID:vlVh3gWj627はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 16:51:46.77ID:BXmPXb0v >>625
そうだよ。 言語仕様を理解してから書くのが好ましい。
理解する前に色々試すというやり方も許容しなくはないが、
それでも後では資料を見て仕様を理解するという前提があってのもの。
理解する前に色々試すタイプは資料を見なくなりがちという現実があると述べてる。
そうだよ。 言語仕様を理解してから書くのが好ましい。
理解する前に色々試すというやり方も許容しなくはないが、
それでも後では資料を見て仕様を理解するという前提があってのもの。
理解する前に色々試すタイプは資料を見なくなりがちという現実があると述べてる。
628はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 16:55:25.38ID:BXmPXb0v >>626
「資料」と「仕様」を使い分けて書いてるつもり。
直接に言語仕様を読めとは述べてないよ。
プログラムを書くときは色んな資料を参考にするので
入門書程度すらちゃんと読まない人がやってけると思ってんの?
ってことを言ってる。
「資料」と「仕様」を使い分けて書いてるつもり。
直接に言語仕様を読めとは述べてないよ。
プログラムを書くときは色んな資料を参考にするので
入門書程度すらちゃんと読まない人がやってけると思ってんの?
ってことを言ってる。
629デフォルトの名無しさん
2023/11/25(土) 17:00:19.64ID:vlVh3gWj え? 資料=言語仕様じゃないの?
「言語仕様を推測したりはしないように」って言ってたから言語仕様に関する資料を読んでからコードを書けという意味だと解釈したのだけど
資料=入門書程度なの?
・・・なんか言ってることが変わってきたね?
「言語仕様を推測したりはしないように」って言ってたから言語仕様に関する資料を読んでからコードを書けという意味だと解釈したのだけど
資料=入門書程度なの?
・・・なんか言ってることが変わってきたね?
630デフォルトの名無しさん
2023/11/25(土) 17:03:42.33ID:vlVh3gWj ちなみに「入門書を何冊か買って読みながら進めるといいよ」みたいな書き方だったらこんなに絡んだりしてないからね?
631はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 17:04:18.21ID:BXmPXb0v633デフォルトの名無しさん
2023/11/25(土) 17:09:19.28ID:rcrc48ZO >言ってることが変わってきた
うん、まぁ、はちみつはそういうとこあるから・・・w
ただまぁ、言語仕様に詳しい人の存在は(はちみつに限らず)非常に有難いんだが、
実際にソフト書く上で気にしなきゃいけないのは言語仕様だけじゃない
特定のソフトの個別の問題を解決するためのアルゴリズムについて、資料があるのか?と。(すでに出来上がってて公開されてるアルゴリズムが存在する問題などほとんど無い)
一番大事なのは論理的思考力であって、なんでもはなから資料をアテにしてたら逆にそれが身につかないよ
うん、まぁ、はちみつはそういうとこあるから・・・w
ただまぁ、言語仕様に詳しい人の存在は(はちみつに限らず)非常に有難いんだが、
実際にソフト書く上で気にしなきゃいけないのは言語仕様だけじゃない
特定のソフトの個別の問題を解決するためのアルゴリズムについて、資料があるのか?と。(すでに出来上がってて公開されてるアルゴリズムが存在する問題などほとんど無い)
一番大事なのは論理的思考力であって、なんでもはなから資料をアテにしてたら逆にそれが身につかないよ
634デフォルトの名無しさん
2023/11/25(土) 17:12:35.76ID:vlVh3gWj635デフォルトの名無しさん
2023/11/25(土) 17:13:52.19ID:rcrc48ZO どうも仕様オタク(言い方は悪いが、アマチュアという意味も込めて)な人達は、自分の知ってる世界が全てだと思い込んでるようで前々から問題だと思ってた
世の中、マイナーなAPIとかになると嘘を書いてることもあるし何も資料が無いことすらある
もちろん実際の動作から「今わかること以上」をわかった気になる(仕様を知った気になる)のは問題だが、
逆に言えば「仕様がこうだから間違ってないんだ」などと動作を確かめもせずに決めつけるのも問題だ
そういうのは結局本人の心的態度の問題に過ぎない
世の中、マイナーなAPIとかになると嘘を書いてることもあるし何も資料が無いことすらある
もちろん実際の動作から「今わかること以上」をわかった気になる(仕様を知った気になる)のは問題だが、
逆に言えば「仕様がこうだから間違ってないんだ」などと動作を確かめもせずに決めつけるのも問題だ
そういうのは結局本人の心的態度の問題に過ぎない
636はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 17:15:51.23ID:BXmPXb0v アルゴリズムは考えればわかることもあるかもしれんが、言語仕様は考えたってわからんし。
(想像はつくことも多いけど。)
(想像はつくことも多いけど。)
637デフォルトの名無しさん
2023/11/25(土) 17:17:15.50ID:mGx3DnG8 > 書いてみるというのは賛成。
初心者はこれでもいい
> でもあくまでも学んでから確かめるために書くのであって動作から言語仕様を推測したりはしないように。
中級者以上になって言語仕様等に踏み込んだ学習をしようとするなら書いたもので仕様を測るのではなく「学んで」知るべし
と言う意味だと俺は>>612を解釈してた
初心者はこれでもいい
> でもあくまでも学んでから確かめるために書くのであって動作から言語仕様を推測したりはしないように。
中級者以上になって言語仕様等に踏み込んだ学習をしようとするなら書いたもので仕様を測るのではなく「学んで」知るべし
と言う意味だと俺は>>612を解釈してた
638はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 17:21:04.72ID:BXmPXb0v639デフォルトの名無しさん
2023/11/25(土) 17:24:19.67ID:vlVh3gWj 「きちんと整備された学習ルートがあるという話なのに」
お前そんな話してたか?
お前そんな話してたか?
640デフォルトの名無しさん
2023/11/25(土) 17:24:48.18ID:mGx3DnG8 あれよな
・初心者スレだからアドバイスはすべて「初心者向けの内容」
・初心者スレだけどアドバイスは「初心者向けの内容」と「その先を見据えた内容」
はちみつ大先生は後者だけど、ツッコミを入れたほうは前者で読み取っているから噛み合わないってだけよな、たぶん
・初心者スレだからアドバイスはすべて「初心者向けの内容」
・初心者スレだけどアドバイスは「初心者向けの内容」と「その先を見据えた内容」
はちみつ大先生は後者だけど、ツッコミを入れたほうは前者で読み取っているから噛み合わないってだけよな、たぶん
641はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 17:26:03.64ID:BXmPXb0v >>639
まずは資料を読め (資料があるから) という主張を最初からしてるつもりだが。
まずは資料を読め (資料があるから) という主張を最初からしてるつもりだが。
642デフォルトの名無しさん
2023/11/25(土) 17:34:11.58ID:xBFezCRv 「C++言語リファレンスを頭に叩き込め!!話はそれからだ」
でいいんじゃね?と俺は思っている
で、理解できない部分は入門書やサンプルコードを読んで理解する
まずは書いて試せという人もいるが俺はこの意見には賛同できない
プログラミング言語というのは日本語や英語などの自然言語と違って
少しでも間違えたら動かないし、C++の場合なら最悪システムが破壊される
理解できなくても動けばいいなどという考えの奴がいるからバグが量産されるのだ
ミスが許されないのはたとえば医者だな
医者は医者になる前に知識を詰め込むのが普通だ
知識もないのに外科手術をしたらどうなるか?
切りながら覚えろというのか?
プログラミングは手術と同様、まずは知識、次に技術が必要となる、と俺は思っている
【完】
でいいんじゃね?と俺は思っている
で、理解できない部分は入門書やサンプルコードを読んで理解する
まずは書いて試せという人もいるが俺はこの意見には賛同できない
プログラミング言語というのは日本語や英語などの自然言語と違って
少しでも間違えたら動かないし、C++の場合なら最悪システムが破壊される
理解できなくても動けばいいなどという考えの奴がいるからバグが量産されるのだ
ミスが許されないのはたとえば医者だな
医者は医者になる前に知識を詰め込むのが普通だ
知識もないのに外科手術をしたらどうなるか?
切りながら覚えろというのか?
プログラミングは手術と同様、まずは知識、次に技術が必要となる、と俺は思っている
【完】
643はちみつ餃子 ◆8X2XSCHEME
2023/11/25(土) 17:40:31.27ID:BXmPXb0v >>640
初心者教育は二種類に大別されると思っていて、たとえば公立学校の授業でするような
興味がない層も含めて最低限の知識は与える教育と
学ぶ意欲があって専門知識と言えるようなものを身に付けようとする者に対する教育。
前者は「興味をひく」というところから考えないといけない。
理屈よりも楽しいと思えるようなやり方が必要になることもあるだろう。
後者は理屈を避けては通れない。
理屈の身に付け方には色んな方法論があるかもしれないけど
まずは書いてあるものを読め
(先人がそれを良いやり方だと思ってまとめてくれたんだから!
手を動かす必要があると思うところでは演習問題があったりもする)
という風に考えてる。
今は初心者であるかどうかは重要ではなく
ここで相談するような層は後者のルートのつもりでいると私は思って書いてる。
初心者教育は二種類に大別されると思っていて、たとえば公立学校の授業でするような
興味がない層も含めて最低限の知識は与える教育と
学ぶ意欲があって専門知識と言えるようなものを身に付けようとする者に対する教育。
前者は「興味をひく」というところから考えないといけない。
理屈よりも楽しいと思えるようなやり方が必要になることもあるだろう。
後者は理屈を避けては通れない。
理屈の身に付け方には色んな方法論があるかもしれないけど
まずは書いてあるものを読め
(先人がそれを良いやり方だと思ってまとめてくれたんだから!
手を動かす必要があると思うところでは演習問題があったりもする)
という風に考えてる。
今は初心者であるかどうかは重要ではなく
ここで相談するような層は後者のルートのつもりでいると私は思って書いてる。
644デフォルトの名無しさん
2023/11/25(土) 17:45:56.52ID:Xpg7OWMd645デフォルトの名無しさん
2023/11/25(土) 18:21:13.32ID:xBFezCRv646デフォルトの名無しさん
2023/11/25(土) 18:24:14.13ID:0MoP1N3f おちんちん舐めてごらん
647デフォルトの名無しさん
2023/11/26(日) 10:58:08.83ID:d/KzVdDP >>628
最近ChatGPTに全部聴いて済ます変なのが住み着いて迷惑だな
最近ChatGPTに全部聴いて済ます変なのが住み着いて迷惑だな
648デフォルトの名無しさん
2023/11/26(日) 11:15:51.84ID:d/KzVdDP >>642
>医者は医者になる前に知識を詰め込むのが普通だ
>知識もないのに外科手術をしたらどうなるか?
>切りながら覚えろというのか?
言いたいことは判るが「最初の医者」はどうしてたんだろうな
君の言ってるやり方は「従順な職人」を育てるやり方としては正しいが
クリエイターを育てることは出来ない
>医者は医者になる前に知識を詰め込むのが普通だ
>知識もないのに外科手術をしたらどうなるか?
>切りながら覚えろというのか?
言いたいことは判るが「最初の医者」はどうしてたんだろうな
君の言ってるやり方は「従順な職人」を育てるやり方としては正しいが
クリエイターを育てることは出来ない
649デフォルトの名無しさん
2023/11/26(日) 12:24:07.96ID:t0WQFMSf650デフォルトの名無しさん
2023/11/26(日) 12:37:18.37ID:DTfcWvWZ 医者の下りはおかしい
医師は残念ながら完全な医学的知識を身に着けて
外科手術に臨む訳じゃないぞ
語弊を恐れなければ「切りながら覚える」側面もある
医師は残念ながら完全な医学的知識を身に着けて
外科手術に臨む訳じゃないぞ
語弊を恐れなければ「切りながら覚える」側面もある
651はちみつ餃子 ◆8X2XSCHEME
2023/11/26(日) 12:54:38.94ID:k38CbPq9 ちゃんとした資料で学んでないと用語が無茶苦茶だから
何を言ってるんだかわからないということが起こる。
言語仕様の理解が結果的に正しくてもそうでなくても。
「伝わればいいだろ!」みたいに言う人が結構いるんだけど伝わらないから困るんだ。
メンバ関数をメソッドと言ったりするのは誤解の余地はそんなにないと思ってたら
非メンバ関数もメソッドと言っている例を観測したことがあるし、
子クラスって派生クラスの意味で言ってるんだよな?
と思ってよく確認したら入れ子になったクラス (nested class) だったりするし、
クラス変数は静的データメンバの意味だろう (Ruby とかにはそういう用語があるし) と思ったら
静的でないデータメンバのことを言ってたというオチもある。
結果的に正しく使ってる場面ですら本当にその意味で言ってるのか疑わしくなる。
経験や感覚で書けるようになったとしても
まともな資料を読んでないというのはそういった形でコミュニティ内で有害なわけで
たまには思い違いがあるのはしょうがないが
学んでないし学ぶ気もないのを良しとは言えないよ。
何を言ってるんだかわからないということが起こる。
言語仕様の理解が結果的に正しくてもそうでなくても。
「伝わればいいだろ!」みたいに言う人が結構いるんだけど伝わらないから困るんだ。
メンバ関数をメソッドと言ったりするのは誤解の余地はそんなにないと思ってたら
非メンバ関数もメソッドと言っている例を観測したことがあるし、
子クラスって派生クラスの意味で言ってるんだよな?
と思ってよく確認したら入れ子になったクラス (nested class) だったりするし、
クラス変数は静的データメンバの意味だろう (Ruby とかにはそういう用語があるし) と思ったら
静的でないデータメンバのことを言ってたというオチもある。
結果的に正しく使ってる場面ですら本当にその意味で言ってるのか疑わしくなる。
経験や感覚で書けるようになったとしても
まともな資料を読んでないというのはそういった形でコミュニティ内で有害なわけで
たまには思い違いがあるのはしょうがないが
学んでないし学ぶ気もないのを良しとは言えないよ。
652デフォルトの名無しさん
2023/11/26(日) 13:47:17.98ID:t0WQFMSf653はちみつ餃子 ◆8X2XSCHEME
2023/11/26(日) 14:18:15.64ID:k38CbPq9654デフォルトの名無しさん
2023/11/26(日) 14:34:29.20ID:mssmbX4x 自己正当化しか考えてない人格破綻者に道理を教えてやる気は無い、自分で考えろ
ここを利用してる初心者は、仕様について教えてくれるはちみつには感謝すべきだが、彼はプロではないしソフトウェアを書き上げたこともほぼ無いアマチュアであって
C++の学び方や上達の仕方についてまでご高説垂れてるのを真に受けないようにね
C++は別に仕様を完璧に把握しなくても使える言語だし(そんな言語なら使い物にならない)、未定義踏みまくるのは彼のようにわざと常識に沿わないおかしなコードを書きたがる素人だけだから。
荒らす気は無いのでこれで終わりにする
ここを利用してる初心者は、仕様について教えてくれるはちみつには感謝すべきだが、彼はプロではないしソフトウェアを書き上げたこともほぼ無いアマチュアであって
C++の学び方や上達の仕方についてまでご高説垂れてるのを真に受けないようにね
C++は別に仕様を完璧に把握しなくても使える言語だし(そんな言語なら使い物にならない)、未定義踏みまくるのは彼のようにわざと常識に沿わないおかしなコードを書きたがる素人だけだから。
荒らす気は無いのでこれで終わりにする
655はちみつ餃子 ◆8X2XSCHEME
2023/11/26(日) 14:42:52.42ID:k38CbPq9 完璧に把握しろなんて一度でも俺が書いた箇所があるなら指摘してくれよ。
書いてないことを主張したかのような風評を流してお前はなにをしたいんだ?
書いてないことを主張したかのような風評を流してお前はなにをしたいんだ?
656はちみつ餃子 ◆8X2XSCHEME
2023/11/26(日) 14:55:17.55ID:k38CbPq9 資料(この場合は入門書)を読んでから手を動かして学ぶというごく普通の手順を主張してるつもりだが、むしろそうじゃない方法でどうするのがよいと考えてるんだ?
学校だって座学でやったことを演習で実践してるだろう。
学校だって座学でやったことを演習で実践してるだろう。
657デフォルトの名無しさん
2023/11/26(日) 15:50:55.41ID:DTfcWvWZ 気にするなってほぼ嫉妬なんだから
658デフォルトの名無しさん
2023/11/26(日) 16:03:14.03ID:t0WQFMSf >ほぼ嫉妬
俺に言ってんの?
いずれにせよ荒らそうとしてる自覚はあるか?
俺に言ってんの?
いずれにせよ荒らそうとしてる自覚はあるか?
659デフォルトの名無しさん
2023/11/26(日) 16:08:02.37ID:Dy8SO9u0660デフォルトの名無しさん
2023/11/26(日) 16:22:42.40ID:t0WQFMSf >>642=645=659 バレバレだからwww
661デフォルトの名無しさん
2023/11/26(日) 18:08:35.12ID:fCQnoW9K662デフォルトの名無しさん
2023/11/26(日) 18:08:55.12ID:4RSi5A29 お取り込み中すみませんが質問です
ダウンキャストという用語が是か非かです
ボクは不適切な用語だと思っていて
理由は
1) 言語の仕様に出てきていない
2) アップかダウンかについてももちろん仕様に無い
3) アップキャスト相当の操作は通常行わない
です
少なくともC++界隈でちゃんとした定義なんて出てこないですよね?
ダウンキャストという用語が是か非かです
ボクは不適切な用語だと思っていて
理由は
1) 言語の仕様に出てきていない
2) アップかダウンかについてももちろん仕様に無い
3) アップキャスト相当の操作は通常行わない
です
少なくともC++界隈でちゃんとした定義なんて出てこないですよね?
663はちみつ餃子 ◆8X2XSCHEME
2023/11/26(日) 20:14:28.93ID:k38CbPq9 >>662
仕様の中を検索してみたら何故か例示のコードのコメントとして数か所だけ upcast という用語で書いてあるんだけど……
原則としては C++ 用語ではないと考えて良いと思う。
クラスの関係をスーパー/サブだとか親/子で言うのが混乱の元という理由で基底/派生という用語になっているので
方向をアップ/ダウンで言うのもおかしな話だし。
derived-to-base convertion というような用語は仕様書の文面にもあるので
アップキャストに相当するのはこの用語のはずだけど
base-to-derived convertion という用語は出てこないので
ダウンキャストに相当する直接の用語はなさそう。
冗長でも「××から〇〇への変換」みたいな言い方が公式なんだと思う。
ところであらためて JIS を見たら derived-to-base convertion の訳語は「派生基底変換」だった……。
to が脱落したらだいぶん雰囲気が変わってしまうでないの。
これは真似しないほうがいいかもね。
ただ、 C++ 界隈の中でも、というか規格の提案や検討に関する文面の中でも
アップキャスト/ダウンキャストという用語はまあまあ使ってるっぽいので
なんだかんだで一語で表せるってのは便利なんだと思う。
私は使わないようにしているけど。
仕様の中を検索してみたら何故か例示のコードのコメントとして数か所だけ upcast という用語で書いてあるんだけど……
原則としては C++ 用語ではないと考えて良いと思う。
クラスの関係をスーパー/サブだとか親/子で言うのが混乱の元という理由で基底/派生という用語になっているので
方向をアップ/ダウンで言うのもおかしな話だし。
derived-to-base convertion というような用語は仕様書の文面にもあるので
アップキャストに相当するのはこの用語のはずだけど
base-to-derived convertion という用語は出てこないので
ダウンキャストに相当する直接の用語はなさそう。
冗長でも「××から〇〇への変換」みたいな言い方が公式なんだと思う。
ところであらためて JIS を見たら derived-to-base convertion の訳語は「派生基底変換」だった……。
to が脱落したらだいぶん雰囲気が変わってしまうでないの。
これは真似しないほうがいいかもね。
ただ、 C++ 界隈の中でも、というか規格の提案や検討に関する文面の中でも
アップキャスト/ダウンキャストという用語はまあまあ使ってるっぽいので
なんだかんだで一語で表せるってのは便利なんだと思う。
私は使わないようにしているけど。
664はちみつ餃子 ◆8X2XSCHEME
2023/11/26(日) 20:20:37.65ID:k38CbPq9 すまぬ。 綴りが間違えてた。 concertion じゃなくて conversion だった。
665デフォルトの名無しさん
2023/11/26(日) 20:28:40.49ID:4RSi5A29 レスサンクス
お手数おかけして痛み入ります
> 3) アップキャスト相当の操作は通常行わない
B *b = (B *)d; // もしもこれが必要な世界だったら
使い分ける?ための用語が欲しくなるのはまだわかるけど
D *d = (D *)b; // こっち方向にしかキャストしないんだから
区別する必要もないし、アップだのダウンだの余計なもんくっつける必要もない
…とはいえボクがいくらこう考えても
みんながそうじゃないから蔓延ってるわけで
> 私は使わないようにしているけど。
その一言で何か救われた気分になりました
お手数おかけして痛み入ります
> 3) アップキャスト相当の操作は通常行わない
B *b = (B *)d; // もしもこれが必要な世界だったら
使い分ける?ための用語が欲しくなるのはまだわかるけど
D *d = (D *)b; // こっち方向にしかキャストしないんだから
区別する必要もないし、アップだのダウンだの余計なもんくっつける必要もない
…とはいえボクがいくらこう考えても
みんながそうじゃないから蔓延ってるわけで
> 私は使わないようにしているけど。
その一言で何か救われた気分になりました
666デフォルトの名無しさん
2023/11/26(日) 20:32:07.21ID:4RSi5A29 一応補足
> B *b = (B *)d; // もしもこれが必要な世界だったら
B *b = d; // こう書くだけじゃ許されなくて
> B *b = (B *)d; // もしもこれが必要な世界だったら
B *b = d; // こう書くだけじゃ許されなくて
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
- 【高市朗報】『劇場版「鬼滅の刃」無限城篇』、ギリのタイミングで中国上映公開し5日間で4億元(87億円)突破!!! [126042664]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
