次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part137 (正しくはpart138)
http://mevius.5ch.net/test/read.cgi/tech/1535353320/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
■長いソースを貼るときはここへ。■
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++相談室 part139
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ f65b-zn+7)
2018/10/06(土) 00:59:48.54ID:CdYUXXMG06デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 02:00:06.62ID:JjdhAE/r0 >>5
ところで、あなたは巨大なプログラムを作った経験ある?
ところで、あなたは巨大なプログラムを作った経験ある?
7デフォルトの名無しさん (ワッチョイ e66f-vBoO)
2018/10/06(土) 02:07:35.21ID:OsNJaukk08デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 02:10:13.19ID:JjdhAE/r0 >>5
たとえば、ポインタの場合の先頭に「p」が付いているだけでも、立派な「意味」になっている。
このような一般法則を用いないで、ポインタであるとう意味まで含めた変数名を
付けることは、基本的に不可能。
また、たとえば、名前の入った0終端文字列へのポインタを「pszName」という変数名を
付けているのは、かなり適切に意味を表していると思う。
「name」だけだと CString 型と 0終端文字列なのかの区別も付かない。
また、長いテキストの中の一部だけに着目した文字列の場合は、そのどちらでもないから
「psz」の接頭辞はつけない。
これにより、発見しにくいバグも減る。
たとえば、ポインタの場合の先頭に「p」が付いているだけでも、立派な「意味」になっている。
このような一般法則を用いないで、ポインタであるとう意味まで含めた変数名を
付けることは、基本的に不可能。
また、たとえば、名前の入った0終端文字列へのポインタを「pszName」という変数名を
付けているのは、かなり適切に意味を表していると思う。
「name」だけだと CString 型と 0終端文字列なのかの区別も付かない。
また、長いテキストの中の一部だけに着目した文字列の場合は、そのどちらでもないから
「psz」の接頭辞はつけない。
これにより、発見しにくいバグも減る。
9デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 02:17:56.90ID:JjdhAE/r0 >>5
決められたフォーマットでファイルにデータを書き込むような場合、コード中、
メモリ中のデータのポインタと、これから書き込む fseek するためのファイルポインタ、
サイズなどが「対」または「コンビ」のようになって存在することがある。
そのとき、接頭の、fpos、p、size、len などでそれらが区別できることはとても有りがたい。
その場合、
fposData1 = pData1 - pTop;
のようなパターンが現れるだろう。
それに加えて、同じではない微妙に違った関数化が難しいようなパターンが現れくることがある。
そういうような場合に、ハンガリアン記法は、とても重宝する。
正しいコードが、記法からだけでほとんど機械的に分かってしまう事も多い。
決められたフォーマットでファイルにデータを書き込むような場合、コード中、
メモリ中のデータのポインタと、これから書き込む fseek するためのファイルポインタ、
サイズなどが「対」または「コンビ」のようになって存在することがある。
そのとき、接頭の、fpos、p、size、len などでそれらが区別できることはとても有りがたい。
その場合、
fposData1 = pData1 - pTop;
のようなパターンが現れるだろう。
それに加えて、同じではない微妙に違った関数化が難しいようなパターンが現れくることがある。
そういうような場合に、ハンガリアン記法は、とても重宝する。
正しいコードが、記法からだけでほとんど機械的に分かってしまう事も多い。
10デフォルトの名無しさん (ワッチョイ df7f-vBoO)
2018/10/06(土) 02:20:37.42ID:mx6yHsyJ0 テンプレートじゃ使えないしもはやC時代の遺物でしかないわな
現代じゃ害悪
現代じゃ害悪
11デフォルトの名無しさん (ワッチョイ e66f-vBoO)
2018/10/06(土) 02:26:47.17ID:OsNJaukk0 >>8
思考のレイヤが違うな。
やりたいことの意味をプログラムに落とし込んだ結果としてなんらかの型に収まるという考えでやってるので、
型が意味だと言われたら本末転倒な感じがする。
まあ型中心の方がわかりやすいってのならそれはそれでいいよ。
思考のレイヤが違うな。
やりたいことの意味をプログラムに落とし込んだ結果としてなんらかの型に収まるという考えでやってるので、
型が意味だと言われたら本末転倒な感じがする。
まあ型中心の方がわかりやすいってのならそれはそれでいいよ。
12デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 02:27:05.24ID:JjdhAE/r0 >>10
自分の場合は、自作テンプレートの中でも使ってる。たとえば、
TYPE m_data;
TYPE *m_pPrev;
TYPE *m_pNext;
xxx( TYPE *pPos ) {
・・・
}
などのように。
自分の場合は、自作テンプレートの中でも使ってる。たとえば、
TYPE m_data;
TYPE *m_pPrev;
TYPE *m_pNext;
xxx( TYPE *pPos ) {
・・・
}
などのように。
13デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 02:31:46.61ID:JjdhAE/r0 >>11
たとえば、floatをdoubleに変更したことはあるが、
BYTE 型を int 型に変えたりすることはまず無い。
16BIT時代から32BIT時代へ移行するような場合は、
変更したことはあるが、機械的に置換すればいいというわけではなかった。
32BIT時代から64BIT時代への以降においても、機械的に置換して
済むものではないと思う。
たとえば、floatをdoubleに変更したことはあるが、
BYTE 型を int 型に変えたりすることはまず無い。
16BIT時代から32BIT時代へ移行するような場合は、
変更したことはあるが、機械的に置換すればいいというわけではなかった。
32BIT時代から64BIT時代への以降においても、機械的に置換して
済むものではないと思う。
2018/10/06(土) 03:24:51.76
目で追っただけでカメラが視線を検知してどの変数を見てるか特定して型を表示してくれ
できれば脳に直接語りかけてくれ
できれば脳に直接語りかけてくれ
15デフォルトの名無しさん (ワッチョイ 8ad7-vBoO)
2018/10/06(土) 07:00:37.46ID:Oq2kvGiO0 ワード幅が変わってもWORDの意味を変えることはできなかったね
16デフォルトの名無しさん (ワッチョイ 8ad7-vBoO)
2018/10/06(土) 07:10:10.75ID:Oq2kvGiO0 > 「name」だけだと CString 型と 0終端文字列なのかの区別も付かない。
型が知りたいときに宣言を見ないアホを救う必要あるか?
F12を押せば一発だろうが
型が知りたいときに宣言を見ないアホを救う必要あるか?
F12を押せば一発だろうが
17デフォルトの名無しさん (アウアウウー Sa30-z023)
2018/10/06(土) 07:26:40.45ID:hM5EPMW3a どのエディタを想定してる?
18デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 07:56:58.40ID:Gg92+MKo0 >>8
> 「name」だけだと CString 型と 0終端文字列なのかの区別も付かない。
今どき0終端文字列なんてAPIに渡したりする時など以外には使わんだろ
ほとんどない例外事項に対処するためによく使うケースの効率落とすのはダメプログラマーにありがち
> 「name」だけだと CString 型と 0終端文字列なのかの区別も付かない。
今どき0終端文字列なんてAPIに渡したりする時など以外には使わんだろ
ほとんどない例外事項に対処するためによく使うケースの効率落とすのはダメプログラマーにありがち
19デフォルトの名無しさん (ワッチョイ 8107-5OJW)
2018/10/06(土) 08:20:03.66ID:u69e3u+l0 >>18
?
?
20デフォルトの名無しさん (ワンミングク MM32-y1q8)
2018/10/06(土) 08:22:41.80ID:hgnllvmvM >>18
?
?
21デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/06(土) 08:36:03.28ID:d9G2ZJ03022デフォルトの名無しさん (オイコラミネオ MMb6-37Ge)
2018/10/06(土) 08:37:57.90ID:CrcQtIJ/M まともに育つIDEを用意してくれや
とりあえず
とりあえず
23デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/06(土) 08:46:02.31ID:d9G2ZJ030 すぐ環境のせいにする…(´・ω・`)
24デフォルトの名無しさん (JP 0H67-/FYQ)
2018/10/06(土) 08:48:27.61ID:ixe97h7gH だから spacemacs だって
25デフォルトの名無しさん (ワッチョイ 965b-zn+7)
2018/10/06(土) 08:49:31.50ID:CdYUXXMG026デフォルトの名無しさん (オイコラミネオ MMb6-37Ge)
2018/10/06(土) 08:50:42.89ID:CrcQtIJ/M 数十万行の他人が書いたソース・コードに一度でも溺れてみたらいいよ…
27デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/06(土) 09:40:20.41ID:d9G2ZJ030 Cの頃はIDEに検索機能さえあれば、検索した結果をメモ帳にでも書きつけて行って簡単にコールグラフを作れた
なぜなら関数名はプログラムの中でほぼ一意とみなせたので、walk aroundの強力な指針となった
C++になったらそうでもなくなった
なぜなら関数名がオーバーロードされるようになった上に異なるクラスが同名のメソッドを持っているというケースが頻出する上に、
テンプレートやnamespaceまであるので
Cの頃から比べたら、解析の困難さは異次元のレベルすぎて草
現実的に解析を行えるかは、ソースコードの字面がどうかかれているかよりもクラスの意味が整理されているかに大きく依存する
もし仮に万が一、#if〜#endifで切りまくられたソースコードで正しくメソッドの定義元や呼び出し元一覧がクラスがテンプレートの
仮引数として渡されているケースについても正しく信用に足る一覧が出るIDEならちょっと欲しいかも
なぜなら関数名はプログラムの中でほぼ一意とみなせたので、walk aroundの強力な指針となった
C++になったらそうでもなくなった
なぜなら関数名がオーバーロードされるようになった上に異なるクラスが同名のメソッドを持っているというケースが頻出する上に、
テンプレートやnamespaceまであるので
Cの頃から比べたら、解析の困難さは異次元のレベルすぎて草
現実的に解析を行えるかは、ソースコードの字面がどうかかれているかよりもクラスの意味が整理されているかに大きく依存する
もし仮に万が一、#if〜#endifで切りまくられたソースコードで正しくメソッドの定義元や呼び出し元一覧がクラスがテンプレートの
仮引数として渡されているケースについても正しく信用に足る一覧が出るIDEならちょっと欲しいかも
28デフォルトの名無しさん (アウアウウー Sa30-z023)
2018/10/06(土) 10:32:45.07ID:hM5EPMW3a そんなあなたにdoxygen+graphviz
29デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 10:37:41.35ID:Gg92+MKo0 >>27
それできないとコンパイルすらできないんだけど…
それできないとコンパイルすらできないんだけど…
30デフォルトの名無しさん (ワッチョイ c0f2-vBoO)
2018/10/06(土) 10:59:24.19ID:GNSvvE670 コンパイラ(とそのコードを書いた本人)以外の人が把握するのが難しくなったということだろ。
ADLやらSFINAEやらで実際にどこの何が呼ばれるのか、プログラム全体をひっくり返してみないと
わからなかったりするしな。
ADLやらSFINAEやらで実際にどこの何が呼ばれるのか、プログラム全体をひっくり返してみないと
わからなかったりするしな。
31デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/06(土) 11:00:25.81ID:d9G2ZJ03032デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 11:48:26.03ID:Gg92+MKo0 >>31
> コンパイラのビルドとIDEのインテリセンス能力は関係ない(ハズ。LLVMは知らん
技術的には可能だって話
> もし定義元を書き換えてエラーを起こせばエラーメッセージから呼び出し元がワカル、
> という考えならテンプレートが絡んだ瞬間に目が眩んで死ぬ
そんなアホな発想するやつがいるとは思わなかったよ w
> コンパイラのビルドとIDEのインテリセンス能力は関係ない(ハズ。LLVMは知らん
技術的には可能だって話
> もし定義元を書き換えてエラーを起こせばエラーメッセージから呼び出し元がワカル、
> という考えならテンプレートが絡んだ瞬間に目が眩んで死ぬ
そんなアホな発想するやつがいるとは思わなかったよ w
33デフォルトの名無しさん (アウアウウー Sa30-z023)
2018/10/06(土) 12:28:56.41ID:hM5EPMW3a34デフォルトの名無しさん (ワッチョイ 70b3-RseO)
2018/10/06(土) 14:07:27.04ID:9hP5TFYu035デフォルトの名無しさん (アウアウウー Sa30-z023)
2018/10/06(土) 14:36:17.51ID:hM5EPMW3a templateの一般的なルールってtemplate引数で汎用的に使えるのはTとかそんな感じ?
36デフォルトの名無しさん (ワッチョイ 9bc3-dNAh)
2018/10/06(土) 14:44:51.23ID:skeZ9l4z0 標準にあるis_integral_vとかdecay_tとかのvやtもハンガリアンの亜種といえば亜種なのか?
37デフォルトの名無しさん (ワッチョイ 70b3-RseO)
2018/10/06(土) 14:51:10.85ID:9hP5TFYu038デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 14:53:54.19ID:Gg92+MKo0 >>34
ドヤってるところ申し訳ないけどテンプレートにルールはないって言ってるやつはいないと思うぞ
ドヤってるところ申し訳ないけどテンプレートにルールはないって言ってるやつはいないと思うぞ
39デフォルトの名無しさん (ワッチョイ 70b3-RseO)
2018/10/06(土) 14:55:36.96ID:9hP5TFYu0 お前>>10を読んでそう思うのか
40デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 15:37:33.52ID:Gg92+MKo041デフォルトの名無しさん (スップ Sd02-YLcB)
2018/10/06(土) 15:45:25.65ID:8LWAn6RCd ハンガリアンなんてなんの役にも立たないどころか邪魔にしかならないルールでコーディングしてたら周りから叩かれるだろ
ジジイしかいないところでやってるのかな
ジジイしかいないところでやってるのかな
42デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/06(土) 16:10:25.13ID:FAIH8E2E0 この板には底辺ドカタしかいないのがよくわかるわ
C++スレで底辺ドカタのコーディング規約だけでもりあがってる
底辺ドカタがオレんとこではこうだといいはりあってる
コーディング規約を守ってもらうのも当然だが
ちゃんといわれたとおりに適切に動くもん作りなさい
そっちのほうが重要だからな
底辺ドカタはこの部分がおもいっきり欠如している
C++スレで底辺ドカタのコーディング規約だけでもりあがってる
底辺ドカタがオレんとこではこうだといいはりあってる
コーディング規約を守ってもらうのも当然だが
ちゃんといわれたとおりに適切に動くもん作りなさい
そっちのほうが重要だからな
底辺ドカタはこの部分がおもいっきり欠如している
43デフォルトの名無しさん (ワッチョイ 70b3-RseO)
2018/10/06(土) 16:27:40.58ID:9hP5TFYu044デフォルトの名無しさん (ワッチョイ 70b3-RseO)
2018/10/06(土) 16:29:29.27ID:9hP5TFYu0 エアプログラマと言われてカチンと来たのか知らんけど
お前に言ったんじゃねーから
どんだけナイーブなんだよ
お前に言ったんじゃねーから
どんだけナイーブなんだよ
45デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/06(土) 16:34:55.04ID:FAIH8E2E0 むしろプログラマーとか日本では最底辺のドカタだからな
なにいきがってんの
なにいきがってんの
46デフォルトの名無しさん (ワッチョイ 70b3-RseO)
2018/10/06(土) 16:38:08.78ID:9hP5TFYu047デフォルトの名無しさん (オイコラミネオ MM5e-37Ge)
2018/10/06(土) 17:27:06.43ID:LgHbCU3jM48デフォルトの名無しさん (オイコラミネオ MM5e-37Ge)
2018/10/06(土) 17:28:08.46ID:LgHbCU3jM >>45
土方だの何だのと罵っても、その土方が世の中を動かしてるんだよなあ
土方だの何だのと罵っても、その土方が世の中を動かしてるんだよなあ
49デフォルトの名無しさん (ワッチョイ b7b3-Ww/X)
2018/10/06(土) 17:36:52.70ID:M3PJP+oD050デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/06(土) 17:40:24.23ID:d9G2ZJ030 △:土方が世の中を動かしてる
○:仕様どおりのブツをきちんと作る土方が世の中を動かしてる
○:仕様どおりのブツをきちんと作る土方が世の中を動かしてる
51デフォルトの名無しさん (オイコラミネオ MM5e-37Ge)
2018/10/06(土) 17:59:22.81ID:LgHbCU3jM >>50
今どき設計とコーディングが別だと思ってるエア()の人かな?
今どき設計とコーディングが別だと思ってるエア()の人かな?
52デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 18:01:49.07ID:JjdhAE/r0 >>25
自分がやってるやり方だと、システム・ハンガリアンについては、
文字列(CStringでstrXxxx、0終端文字列で、szXxxxなど) と BOOL 型 (bXxxx)、
ポインタ(pXxxx)、についてだけ接頭辞を必ず使っている。
整数型、浮動小数点型については原則的には接頭辞を付けてない。
ただし、浮動小数点と整数を明確に区別したいときには、特に浮動小数点変数
についてだけは、「f」を付ける事があるが、float と double は区別してない。
int 整数についは、どうしても必要な場合は「i」を付ける場合があるが、普段は付けない。
今のところ、リストについては、接頭辞ではなく、接尾語のように、
XxxxList と付けているが、メンバ変数としては、
class CYyyyy {
・・・
CMyList<Aaaa> m_listXxxx;
・・・
};
と書くことはある。
配列の添え字は、idxXxxx、個数は、numXxxx、id 番号は、idXxxx。
最大値については命名に迷うことが多い。maxXxxx とすることもあるが、
numXxxx とは、「1」しか値が違わないことも多いので迷う。
新しく作ったクラスのオブジェクトについては、基本的には接頭辞としては
付けないが、どこか、変数名の一部でクラスが分かるようにすることはある。
たとえばの話、CPerson クラスのオブジェクトなら、person1、person2
などとすることが多い。
自分がやってるやり方だと、システム・ハンガリアンについては、
文字列(CStringでstrXxxx、0終端文字列で、szXxxxなど) と BOOL 型 (bXxxx)、
ポインタ(pXxxx)、についてだけ接頭辞を必ず使っている。
整数型、浮動小数点型については原則的には接頭辞を付けてない。
ただし、浮動小数点と整数を明確に区別したいときには、特に浮動小数点変数
についてだけは、「f」を付ける事があるが、float と double は区別してない。
int 整数についは、どうしても必要な場合は「i」を付ける場合があるが、普段は付けない。
今のところ、リストについては、接頭辞ではなく、接尾語のように、
XxxxList と付けているが、メンバ変数としては、
class CYyyyy {
・・・
CMyList<Aaaa> m_listXxxx;
・・・
};
と書くことはある。
配列の添え字は、idxXxxx、個数は、numXxxx、id 番号は、idXxxx。
最大値については命名に迷うことが多い。maxXxxx とすることもあるが、
numXxxx とは、「1」しか値が違わないことも多いので迷う。
新しく作ったクラスのオブジェクトについては、基本的には接頭辞としては
付けないが、どこか、変数名の一部でクラスが分かるようにすることはある。
たとえばの話、CPerson クラスのオブジェクトなら、person1、person2
などとすることが多い。
53デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 18:02:16.20ID:JjdhAE/r054デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 18:05:29.36ID:JjdhAE/r0 >>25
それから、今のところ、std::string は使わずに、CString ばかり使っているので、
std::string と CString の文字列を区別する命名法は普段は考えたことが無い。
多分、std::string を、sstrXxxx、CString を strXxxx にするか、逆に、
strXxxx と、cstrXxxx にするかだと思う。
それは、どちらか好んで使いたい方を短くするように命名法を決める。
それから、今のところ、std::string は使わずに、CString ばかり使っているので、
std::string と CString の文字列を区別する命名法は普段は考えたことが無い。
多分、std::string を、sstrXxxx、CString を strXxxx にするか、逆に、
strXxxx と、cstrXxxx にするかだと思う。
それは、どちらか好んで使いたい方を短くするように命名法を決める。
55デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 18:10:29.82ID:Gg92+MKo056デフォルトの名無しさん (ワッチョイ 6ee3-BkfR)
2018/10/06(土) 18:13:01.41ID:JjdhAE/r0 >>25
>std::unordered_set<Company>みたいなテンプレ使ったクラス、
これは使ったこと無いけど、list の命名に習うなら、グローバル変数の場合は、
g_setXxx
g_usetXxxx
みたいな事になるかと思う。長すぎるのは困るので迷いどころ。
>std::unordered_set<Company>みたいなテンプレ使ったクラス、
これは使ったこと無いけど、list の命名に習うなら、グローバル変数の場合は、
g_setXxx
g_usetXxxx
みたいな事になるかと思う。長すぎるのは困るので迷いどころ。
57デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/06(土) 18:13:54.52ID:d9G2ZJ03058デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/06(土) 18:17:31.24ID:TQR3/dVH059デフォルトの名無しさん (ドコグロ MM36-GL8C)
2018/10/06(土) 18:39:05.87ID:iIkYOa/KM60デフォルトの名無しさん (スップ Sd02-YLcB)
2018/10/06(土) 18:47:51.32ID:8LWAn6RCd 今週は一般的な命名法って何のこと?
ハンガリアンの話をしてるのにな
ハンガリアンの話をしてるのにな
61デフォルトの名無しさん (スップ Sd02-YLcB)
2018/10/06(土) 18:48:44.44ID:8LWAn6RCd 今週はは勝手についてしまった
62デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/06(土) 18:49:16.40ID:FAIH8E2E0 低学歴知恵遅れには
計算機のアトミックな型という概念がないからな
計算機のアトミックな型という概念がないからな
63デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/06(土) 18:51:00.59ID:FAIH8E2E0 ともかく低学歴が書いたコードは読みにくい
64デフォルトの名無しさん (ワッチョイ a6b3-XM+q)
2018/10/06(土) 18:51:48.57ID:3GKrUe5y0 C++は低脳でも使える言語だが、C++使ってるから低脳ってわけでもない。
65デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/06(土) 18:52:08.17ID:TQR3/dVH066デフォルトの名無しさん (ワッチョイ b7b3-Ww/X)
2018/10/06(土) 18:55:18.77ID:M3PJP+oD0 >>50
まさに問題の本質を逆説的に示している。
仕様どおり、仕様書の解釈に誤解の余地がないほどにちゃんと仕様書が書ける人が少なすぎる。
行間を読めない現業の人がいる限り、行間を読めという免罪符は通用しない。
それを何だかんだ言っても実現してくれる(一部の)エンジニアはすごいと思う。
まさに問題の本質を逆説的に示している。
仕様どおり、仕様書の解釈に誤解の余地がないほどにちゃんと仕様書が書ける人が少なすぎる。
行間を読めない現業の人がいる限り、行間を読めという免罪符は通用しない。
それを何だかんだ言っても実現してくれる(一部の)エンジニアはすごいと思う。
67デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/06(土) 18:56:13.41ID:FAIH8E2E0 やはり低学歴知恵遅れにはjavascriptが限界
もしくはさらに最底辺のウンコスプリプトが限界
もしくはさらに最底辺のウンコスプリプトが限界
6865 (ワッチョイ 70b3-vBoO)
2018/10/06(土) 19:02:35.18ID:TQR3/dVH0 >>ドコグロ MM36-GL8C=ワッチョイ aab3-GL8C
みたいなアホにはわからんだろうから補足すると、
メタプログラミングにおける”型”とは
・定数
・型
・テンプレート
これらのことだ
それらのうちどれであるかを示すような書き方は標準ライブラリでも普通にされてる(テンプレート・テンプレートパラメータの命名規則は見たことないが)
ハンガリアンの考え方と同じだろうが
(もう一度言うけど個人的には常に守るべきとまでは思わない、所詮可読性や一貫性・利便性のためのもの
みたいなアホにはわからんだろうから補足すると、
メタプログラミングにおける”型”とは
・定数
・型
・テンプレート
これらのことだ
それらのうちどれであるかを示すような書き方は標準ライブラリでも普通にされてる(テンプレート・テンプレートパラメータの命名規則は見たことないが)
ハンガリアンの考え方と同じだろうが
(もう一度言うけど個人的には常に守るべきとまでは思わない、所詮可読性や一貫性・利便性のためのもの
69デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 19:06:54.45ID:Gg92+MKo070デフォルトの名無しさん (スップ Sd02-YLcB)
2018/10/06(土) 19:10:00.82ID:8LWAn6RCd いや、そのテンプレートの話とハンガリアンを結びつけるのは無理ありますわ…
71デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/06(土) 19:10:06.22ID:TQR3/dVH072デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/06(土) 19:10:40.70ID:TQR3/dVH073デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/06(土) 19:12:29.62ID:FAIH8E2E0 なんにも分かってない低学歴知恵遅れの元ウンコスクリプターが
分かった気になってC++さわると
必然的にこうなる
分かった気になってC++さわると
必然的にこうなる
74デフォルトの名無しさん (スップ Sd02-YLcB)
2018/10/06(土) 19:15:13.83ID:8LWAn6RCd だめだこいつ話が通じてねえw
75デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/06(土) 19:17:33.32ID:TQR3/dVH076デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 19:26:32.20ID:Gg92+MKo077デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/06(土) 19:29:21.39ID:TQR3/dVH0 >>65の前半には反論できないの?
恥の上塗り乙 w
恥の上塗り乙 w
78デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/06(土) 19:30:15.36ID:Gg92+MKo0 前半の話なんてしてないし w
79デフォルトの名無しさん (ワッチョイ e66f-vBoO)
2018/10/06(土) 22:43:12.86ID:OsNJaukk0 >>65
俺は >>5 で命名法を全否定したつもりはないけどな。
システムハンガリアンというか、 >>4 の「型と意味の二重の思考」を批判した。
部分的にはアプリケーションハンガリアン的なものは有りだと思ってるよ。
型は当然に意味を表すために付けられる (べきである) し、
名前は (なんらかの命名規則によって) 意味を表すようにする、
結果的に名前が型を表すこともあるけれども、
一貫して「意味」で考えればよいだけというつもりだった。
意味 → 型、名前
で、>>8 で「型は意味だ」ということが述べられていたので、
意味 → 型 → 名前
というつもりなら、中心に据えるレイヤが違うんだろうな (でもやってることはそんなにかわらん) ってことで、
な〜んか腑に落ちないけどまあいいやという気持ちが >>11 って感じ。
俺は >>5 で命名法を全否定したつもりはないけどな。
システムハンガリアンというか、 >>4 の「型と意味の二重の思考」を批判した。
部分的にはアプリケーションハンガリアン的なものは有りだと思ってるよ。
型は当然に意味を表すために付けられる (べきである) し、
名前は (なんらかの命名規則によって) 意味を表すようにする、
結果的に名前が型を表すこともあるけれども、
一貫して「意味」で考えればよいだけというつもりだった。
意味 → 型、名前
で、>>8 で「型は意味だ」ということが述べられていたので、
意味 → 型 → 名前
というつもりなら、中心に据えるレイヤが違うんだろうな (でもやってることはそんなにかわらん) ってことで、
な〜んか腑に落ちないけどまあいいやという気持ちが >>11 って感じ。
80デフォルトの名無しさん (ワッチョイ fcaf-XM+q)
2018/10/06(土) 22:58:06.04ID:0ug9OSMx0 昔から仮想コンストラクタの使い道だけ思い浮かばないのですが、
何か有用な使い方ってありますか?
何か有用な使い方ってありますか?
81デフォルトの名無しさん (ワッチョイ c4e3-BkfR)
2018/10/06(土) 23:00:31.50ID:YHCdyeri082デフォルトの名無しさん (ワッチョイ a6b3-XM+q)
2018/10/06(土) 23:07:04.84ID:3GKrUe5y0 ハンガリアンで書いてみればいいだろ。
今まで名前考えるのにどれだけ悩んでたかわかるから。
サクサクかけるでえ。
今まで名前考えるのにどれだけ悩んでたかわかるから。
サクサクかけるでえ。
83デフォルトの名無しさん (ワッチョイ 0cb3-vBoO)
2018/10/06(土) 23:07:31.25ID:UA9NipTw084デフォルトの名無しさん (ワッチョイ a6b3-XM+q)
2018/10/06(土) 23:12:29.30ID:3GKrUe5y0 サクッちょサクサクやで。
85デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/07(日) 00:02:27.52ID:2FImrXZj0 >>79
>命名法を全否定したつもりはないけどな。
それはすまんかった
要するに記法に型を入れる必要は無いってこと?
まぁ型はちゃんと自分の目で確認しろよ、という考え方を否定するつもりはないけど
他人の書いた長いコード読んでると途中で忘れることもあるしなぁ
(特に数文字とかの短すぎるローカル変数名で長い関数書かれると地獄)
わかりやすけりゃ何でもいいんだけどさ
自分はテンプレートを理由にハンガリアンを否定するのは違うだろって言いたかっただけ
>命名法を全否定したつもりはないけどな。
それはすまんかった
要するに記法に型を入れる必要は無いってこと?
まぁ型はちゃんと自分の目で確認しろよ、という考え方を否定するつもりはないけど
他人の書いた長いコード読んでると途中で忘れることもあるしなぁ
(特に数文字とかの短すぎるローカル変数名で長い関数書かれると地獄)
わかりやすけりゃ何でもいいんだけどさ
自分はテンプレートを理由にハンガリアンを否定するのは違うだろって言いたかっただけ
86デフォルトの名無しさん (スップ Sd02-YLcB)
2018/10/07(日) 00:05:36.66ID:rbebcA6zd >>85
まだ理解できてなくてワロタw
まだ理解できてなくてワロタw
87デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/07(日) 00:10:22.96ID:2FImrXZj0 >>86
受け売りエアプ野郎は帰ってね
受け売りエアプ野郎は帰ってね
885 (ワッチョイ e66f-vBoO)
2018/10/07(日) 00:33:33.16ID:77445U4A089デフォルトの名無しさん (ワッチョイ 70b3-vBoO)
2018/10/07(日) 00:36:57.44ID:2FImrXZj0 >>88
システムハンガリアンには型だけでなく意味(というか用途)まで混じってることを批判してるんじゃないの?
システムハンガリアンには型だけでなく意味(というか用途)まで混じってることを批判してるんじゃないの?
90デフォルトの名無しさん (ワッチョイ a6b3-XM+q)
2018/10/07(日) 01:06:34.13ID:iX7g/tHs0 いまどきハンガリアンごときで論争かよ。
間抜けだな。
日本人としての矜持はどこ行った。
今やるべきことはモンゴリアンの発表だろ。
作る人の板だぞここは。
間抜けだな。
日本人としての矜持はどこ行った。
今やるべきことはモンゴリアンの発表だろ。
作る人の板だぞここは。
91デフォルトの名無しさん (ワッチョイ d980-A6IM)
2018/10/07(日) 01:11:39.10ID:mIq+f5AO0 この板は底辺ドカタしかいないからな
しょうがない
しょうがない
92デフォルトの名無しさん (ワンミングク MM32-y1q8)
2018/10/07(日) 01:52:24.01ID:r4TItDH9M >>80
抽象クラスで配列作れるでしょ
抽象クラスで配列作れるでしょ
93デフォルトの名無しさん (オイコラミネオ MMb6-37Ge)
2018/10/07(日) 01:59:47.96ID:mnW0GgxkM94デフォルトの名無しさん (ワッチョイ 0823-+rwh)
2018/10/07(日) 03:09:32.05ID:A62LOxJG0 >>80
古来よりコピー作る(機能を提供する)のに使われている
古来よりコピー作る(機能を提供する)のに使われている
95デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/07(日) 06:58:40.31ID:874mFeqU0 >>80
フィルタ(固有の動作状態を持つ(←重要)ブツ)のの配置や接続をユーザーがGUIで変更可能なフィルタアプリを作るとき使う
これは(部品)create()とclone()の両方が覿面に要る
イメージ的にはDirectShowのgraphEditみたいなアプリを考えたら良い
ユーザーがすでに書いた組み合わせフィルタ(A→B)を最終段にもう一発入れたいというときに、
今日日一般的で親切な操作インターフェースはワークシートにすでに描かれている(A→B)をclone()することである
フィルタが過去の入力履歴に依存するケースがあり、そういった記憶はフィルタのインスタンス固有なので、ポインタのコピーでは済まず、clone()である必要がある
(Visioみたいに単に部品の接続だけが問題なブツなら、部品自体はポインタのコピーで済ませて部品間の接続情報を別途管理するという構成も可能だが、部品の動作状態が絡むとclone()止む無し
フィルタ(固有の動作状態を持つ(←重要)ブツ)のの配置や接続をユーザーがGUIで変更可能なフィルタアプリを作るとき使う
これは(部品)create()とclone()の両方が覿面に要る
イメージ的にはDirectShowのgraphEditみたいなアプリを考えたら良い
ユーザーがすでに書いた組み合わせフィルタ(A→B)を最終段にもう一発入れたいというときに、
今日日一般的で親切な操作インターフェースはワークシートにすでに描かれている(A→B)をclone()することである
フィルタが過去の入力履歴に依存するケースがあり、そういった記憶はフィルタのインスタンス固有なので、ポインタのコピーでは済まず、clone()である必要がある
(Visioみたいに単に部品の接続だけが問題なブツなら、部品自体はポインタのコピーで済ませて部品間の接続情報を別途管理するという構成も可能だが、部品の動作状態が絡むとclone()止む無し
96デフォルトの名無しさん (ワッチョイ fcaf-XM+q)
2018/10/07(日) 11:07:53.26ID:rhwre/Em0 >>92,94,95
うーん、よくわからない。
純粋に
class A {
virtual: A() {}
}
のvirtual事なのですがその事を仰ってますよね?
"x* create()"と"x* clone()"が要る場合があるのは理解できるけど、
"x* create()"を実装するのにコンストラクタを仮想にする必要が無いような。
もう少しわかりやすくしてもらえると助かりますが、面倒でしたらスルー
していただいても結構です。ありがとう。
うーん、よくわからない。
純粋に
class A {
virtual: A() {}
}
のvirtual事なのですがその事を仰ってますよね?
"x* create()"と"x* clone()"が要る場合があるのは理解できるけど、
"x* create()"を実装するのにコンストラクタを仮想にする必要が無いような。
もう少しわかりやすくしてもらえると助かりますが、面倒でしたらスルー
していただいても結構です。ありがとう。
97デフォルトの名無しさん (アウアウウー Sa30-z023)
2018/10/07(日) 11:38:47.25ID:FoRhSX54a コンストラクタってvirtualできたっけ?
98デフォルトの名無しさん (ブーイモ MM5a-y1q8)
2018/10/07(日) 11:40:37.47ID:kve7u25tM99デフォルトの名無しさん (ブーイモ MM5a-y1q8)
2018/10/07(日) 11:41:19.51ID:kve7u25tM >>97
私の知る限り出来ないな
私の知る限り出来ないな
100デフォルトの名無しさん (ワッチョイ aab3-GL8C)
2018/10/07(日) 13:37:26.97ID:Ty3ihyC20101デフォルトの名無しさん (ブーイモ MM5a-y1q8)
2018/10/07(日) 14:16:30.30ID:kve7u25tM102デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/07(日) 14:41:28.41ID:874mFeqU0 コンストラクタはC++の構文上はvirtualにでっきない
抽象クラスx (Product)のx*を返すcreate()メソッドを何かのクラス(Creator)に設けたら機能としてはできる
Creatorが内部で実際の生成をサブクラスに委譲する場合は正にファクトリーメソッドパターン(のProductが抽象クラスのケース)になる
さらにその「何かのクラス」(Creator)まで抽象クラスにしたブツがアブストラクトファクトリーパターンというやつで、もはや
ProductとCreatorが同じ抽象クラスであってもかまわない。
ここまでやって初めてclone()が抽象化できるすわなち「インスタンスの」クローニングを抽象化のうちにやれる
抽象コンストラクタとはフツーアブストラクトファクトリーパターンかつProductとCreatorが共通の抽象クラスのケースを指す(のだと思う
※ 個人の感想です
抽象クラスx (Product)のx*を返すcreate()メソッドを何かのクラス(Creator)に設けたら機能としてはできる
Creatorが内部で実際の生成をサブクラスに委譲する場合は正にファクトリーメソッドパターン(のProductが抽象クラスのケース)になる
さらにその「何かのクラス」(Creator)まで抽象クラスにしたブツがアブストラクトファクトリーパターンというやつで、もはや
ProductとCreatorが同じ抽象クラスであってもかまわない。
ここまでやって初めてclone()が抽象化できるすわなち「インスタンスの」クローニングを抽象化のうちにやれる
抽象コンストラクタとはフツーアブストラクトファクトリーパターンかつProductとCreatorが共通の抽象クラスのケースを指す(のだと思う
※ 個人の感想です
103デフォルトの名無しさん (ワッチョイ 96f6-Qng4)
2018/10/07(日) 14:46:34.66ID:9AlsaWAK0 コンストラクタの中でそのクラスのvirtual関数を呼んでも
基底クラスのが呼ばれるよな。
基本的にコンストラクタの中ではあんまりいろいろしないほうがいい。
基底クラスのが呼ばれるよな。
基本的にコンストラクタの中ではあんまりいろいろしないほうがいい。
104デフォルトの名無しさん (ワッチョイ 26bd-PkCJ)
2018/10/07(日) 14:50:52.53ID:874mFeqU0 >基底クラスのが呼ばれるよな。
うそぴょん
自身のが(非仮想関数同然に)呼ばれる
理由はこんなかんじ↓
ttp://isoparametric.hatenablog.com/entry/20080707/1215396846
うそぴょん
自身のが(非仮想関数同然に)呼ばれる
理由はこんなかんじ↓
ttp://isoparametric.hatenablog.com/entry/20080707/1215396846
105デフォルトの名無しさん (ワッチョイ 9bc3-dNAh)
2018/10/07(日) 15:14:33.44ID:ldfyXuEU0 元の質問主はデストラクタと間違えたのかな?
コンストラクタにvirtual付けたらコンパイルエラーだからすぐわかるだろうし
コンストラクタにvirtual付けたらコンパイルエラーだからすぐわかるだろうし
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 買ったばかりのオーブンレンジ「この機種はお餅を焼くことはできません」
- 【悲報】キティちゃん率いるサンリオ軍団、深刻な若手不足に陥る
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 気が狂いそう
