[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/24 15:41 / Filesize : 321 KB / Number-of Response : 1024
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part137



1 名前:デフォルトの名無しさん [2018/08/27(月) 16:02:00.94 ID:vY3QDx2y0.net]
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part137
https://mevius.5ch.net/test/read.cgi/tech/1531558382/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/

■長いソースを貼るときはここへ。■
 codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)

----- テンプレ ここまで -----
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

930 名前:デフォルトの名無しさん [2018/10/02(火) 15:51:55.37 ID:Xh7D/bbnH.net]
割と昔からあるプログラムを見てるんですけど一つのメソッド内で
for(int i = 0; ……){……}
for(i = 0;……){……}

って書き方してるのをちらほら見ます
要は宣言してるんだから使い回せるだろみたいな理屈なんでしょうがビルドしようとすると当然未定義だとエラーが出ます
昔のC++だとこれがオッケーだったりしたんでしょうか?

931 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 15:56:06.09 ID:kk/2dA0Y0.net]
そうだよ

932 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 16:33:18.83 ID:Tcj3k2lbM.net]
c++で初心者が作れるものを教えてください

933 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 16:37:39.73 ID:kk/2dA0Y0.net]
rogueとか作って見てはどうよ
SetConsoleCursorPositionとGetKeyStateがあれば何とかなるだろ

934 名前:はちみつ餃子 mailto:sage [2018/10/02(火) 16:39:28.61 ID:wuORmtyC0.net]
>>912
むしろ古い仕様だと後者の i を宣言しようとすると、
ひとつのスコープ内で同じ名前の変数を定義しようとした扱いになってエラーになったりした。

935 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 17:18:00.03 ID:kk/2dA0Y0.net]
今のコンパイラでも当時の仕様に合わせるオプションはある

936 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 18:04:17.03 ID:Tcj3k2lbM.net]
>>915
ありがとう

937 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 19:05:29.79 ID:Tcj3k2lbM.net]
C++.でバッチ処理やbashのsedの様な機能はありますか?

938 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 19:11:57.50 ID:kk/2dA0Y0.net]
システムコマンドを実行したいのならsystem関数
正規表現ならstd::regexクラス
ファイル名に関する様々なことはstd::filesystem::pathクラス



939 名前:デフォルトの名無しさん mailto:sage [2018/10/02(火) 20:37:48.16 ID:YnEH1wx10.net]
>>920
ありがとうございます
とても便利です

940 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 01:07:54.12 ID:S2BN/gu+r.net]
std::array を自作関数の引数に渡したいときって、サイズはハードコードしないとダメなの?

941 名前:さまよえる蟻人間 mailto:sage [2018/10/03(水) 01:11:26.75 ID:gXNqr2Qf0.net]
>>922
template <size_t t_n>
void my_func(std::array<data_t, t_n>& a)
{
...
}

942 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 01:18:33.15 ID:S2BN/gu+r.net]
>>923
なるほ
ありがとうございます

943 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 01:18:50.70 ID:S2BN/gu+r.net]
>>923
なるほ
ありがとうございます

944 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 03:04:58.67 ID:plRFOjxw0.net]
>>913 >>916
ありがとうございました。やっぱそうだったんですね
しかし検索しても全然出てこないというかどう検索したら良いものか。C++98とかの時代になるんですかねぇ

945 名前:はちみつ餃子 mailto:sage [2018/10/03(水) 05:02:16.81 ID:jiQInXAP0.net]
>>926
たぶんそれより更に前の話だったと思う。

「c++ for文 宣言 スコープ」でググったらこういうのとかヒットした。
www.ksky.ne.jp/~seahorse/cpp/loopvar.html

D&E でも言及があって、 if 文でのルールと合わせる形で修正したという話が載ってる。

946 名前:デフォルトの名無しさん mailto:sage [2018/10/03( ]
[ここ壊れてます]

947 名前:水) 05:31:10.20 ID:F+YgKz680.net mailto: >>917
VC++ですら廃止予定だけど
https://msdn.microsoft.com/ja-jp/library/84wcsx8x.aspx
[]
[ここ壊れてます]

948 名前:はちみつ餃子 mailto:sage [2018/10/03(水) 05:33:04.20 ID:jiQInXAP0.net]
ARM (The Annotated C++ Reference Manual; amzn.asia/d/53K2HrA ) を確認してみたら、
「初期設定文が宣言ならば、宣言された変数のスコープは for 文を囲むブロックの終わりまでである」
というような記述がある。 (要するに古い仕様)

このあたりから C++98 になるまでの間に修正したってことなんじゃないかと。



949 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 07:01:52.10 ID:IEc6BJqm0.net]
>>927

キーワードと完全に同じ綴りのマクロがあると
標準ヘッダが動作保証外になる

ISO/IEC9899:2011 7.1.2 Standard headers の段落4

950 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 11:00:28.82 ID:e50Rb7+yd.net]
>>926
最初期の処理系、AT&T cfront の頃からの仕様だから 1980年台だと思う
ちなみに有名な Annotated C++ Reference Manual (ARM) は
この cfront のリファレンスマニュアルに注を付けたもの。

Mac II が出た頃の Mac のソフト開発者は Apple の MPW という開発環境の上で
AT&T のリファレンスマニュアル見ながら cfront で開発していた。

951 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 11:03:08.53 ID:e50Rb7+yd.net]
>>926
>しかし検索しても全然出てこないというかどう検索したら良いものか。

当時まだ処理系と独立して言語仕様を策定/記述したものは存在していなくて、
上記の

952 名前: cfront のリファレンスマニュアルと cfront の実際の動作が c++ の仕様でした。 []
[ここ壊れてます]

953 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 12:23:08.82 ID:eWsEWXO50.net]
>>930
そんなもん古い環境で使うなら標準ヘッダのインクルード後に定義するに決まってるだろ
現行の標準に合わせたいけど仕方なく古い環境でも動くようにしたい場合のテクニックなんだから

954 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 13:10:09.63 ID:IEc6BJqm0.net]
>>933
俺だったらこう書くぜ
{ for(int i = 0; i < 1; i++) ; }
{ for(int i = 0; i < 1; i++) ; }
前提にしている環境を誤解させかねない変態コードには反対だ

955 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 13:21:21.77 ID:2zzoZNSm0.net]
ヘタレな俺は c 同様直近のブロックの頭で宣言してました

956 名前:はちみつ餃子 mailto:sage [2018/10/03(水) 17:25:53.30 ID:jiQInXAP0.net]
>>935
今では C でもブロックの頭という縛りは無いやで。

957 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 22:30:16.11 ID:T5RLH7Axr.net]
std::array ってコンパイル時にサイズが決まっていることを想定して作られてるんだよね?

だったら、「可変長ではないがサイズは実行時に決まる」というメモリが連続な配列がほしいなら生配列を使え、というのが C++ を作った人の気持ちなの?

958 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 23:04:38.92 ID:p3pJJViFa.net]
それこそvectorじゃないの



959 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 23:19:51.08 ID:frDsf1q90.net]
>>937
いや、昔はイニシャライザーリストがなかったので、初期化式が使えるオブジェクトの立ち位置だった。
イニシャライザーリストが入ったのでほぼ産廃。constexprの対応もなく死んでいる。
基本的に配列っぽいものがほしかったらベクター使ってっていう趣旨だったと思う。

960 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 23:26:50.16 ID:T5RLH7Axr.net]
>>938-939
vector ってメモリ空間連続ですか?
だったら迷わずこれ使うんですが

961 名前:デフォルトの名無しさん mailto:sage [2018/10/03(水) 23:29:56.10 ID:frDsf1q90.net]
>>940
&V[0]すると一本のメモリの先頭が取れると規格書に書いてあると聞いた。
これは、サイズを拡張するなどのメモリ変更があるまで同じものを指してると思う。

962 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 00:07:58.65 ID:zm1AtLvQ0.net]
>>940
迷わず使っていいですよ

963 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 00:35:06.85 ID:b1qTAw9u0.net]
C++11からvectorのメモリ空間は連続でなければならないと規格で決められた
安心していいよ

964 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 00:40:31.88 ID:bav+IDITr.net]
>>941-943
ありがとうございます
しかしメモリが連続じゃないといけない外部ライブラリに vector 渡すの結構緊張しますね


少し飛躍するのですが、vector の入れ子は流石に連続とは限りませんよね?

965 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 00:58:43.11 ID:s35zoLCpa.net]
メモリ連続させたいならvectorの入れ子はよして。

最初arrayで考えてたなら画像とか行列とかそんな感じかな?

966 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 01:32:01.20 ID:ezH2Wklod.net]
>>943
太古から実際には連続だし規格として明記されたのは C++03 から。
C++11 で連続と規格化されたのは string (basic_string) の方。

967 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 01:57:52.21 ID:CYtCz8O/r.net]
>>945
いえ、もともとは生の一次元配列を使ってて、array の方が取り回しが良いのかなと考えただけです
実際は vector が最強ということですね

入れ子云々は本当に気になっただけです

多次元配列は、色々諦めて Boost を使っています

968 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 03:00:41.82 ID:SxiNReMs0.net]
変数名とかクラス名にめちゃくちゃ毎回悩む
従業員の名前、社員番号、階級みたいなクラスを作るときのクラス名とかって普段どうしてる?
Employeeだけで良いのだろうか
DataとかInfoとか意味のあるようでないような命名が頭をよぎってしまう

仮に従業員をEmployeeとしたときに会社名と従業員リストのDictionary<string, List<Employee>>の変数名とかどうすりゃええねんってなる
CompanyではないしCompanyDataだとそれっぽいが的確でもなさそうだし...



969 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 03:38:58.82 ID:ezH2Wklod.net]
emproyees でいいだろ
for (consy auto& emproyee : emproyees["Microsoft"]) ...

970 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 03:39:14.21 ID:ezH2Wklod.net]
rじゃなくてlか

971 名前:さまよえる蟻人間 mailto:sage [2018/10/04(木) 04:00:10.87 ID:MLculXgyd.net]
MapCompanyNameToEmployees

972 名前:はちみつ餃子 mailto:sage [2018/10/04(木) 04:12:55.17 ID:1wg41Y300.net]
>>940
vector が連続と明記されたのは C++03 だが、
C++ 標準の体制としては仕様の「欠陥」と認められた項目については過去の版にさかのぼって適用されることがあり、
vector が連続であるというのもそのひとつのはず。

つまり、 C++98 を名乗る処理系でも vector は連続であるべきで、実際にほとんどそうなっていると思う。

973 名前:デフォルトの名無しさん mailto:sage [2018/10/04(木) 04:54:31.87 ID:MQvrn7bB0.net]
>>948
クラス名・変数名に迷ったら書き込むスレ。Part28 [無断転載禁止]©2ch.net
https://mevius.2ch.net/test/read.cgi/tech/1494147712/

974 名前:デフォルトの名無しさん [2018/10/04(木) 19:12:35.69 ID:Ohr0xwue0.net]
>>948
素直に日本語使えばええやんけ。

975 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 00:43:30.52 ID:SgefIaql0.net]
英語の複数形は便利すぐる
emproyee_list[]の代わりにemproyees[]で済む
大文字小文字でキャメルケースも使えるしほんと出来過ぎ

976 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 01:05:30.84 ID:lAZe+Hwv0.net]
単独かコンテナで意味が大きくかわるのに
字面の違いがsのありなしは微妙すぎていまいちだと思ってる

977 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 06:55:01.43 ID:226EunUa0.net]
しかしそこまでメモリに直触りするならvectorでない方がいい気がするんだが。

978 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 07:56:42.65 ID:Zg//fZBj0.net]
だよな
生メモリがいるなら生メモリ使えってこと



979 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 08:13:10.92 ID:8YBbWag1r.net]
>>957-958
サイズの取得とかオシャレにできないじゃん

980 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 12:49:05.99 ID:cQzHZ22n0.net]
生メモリのサイズの管理の仕方さえ忘れたか

981 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 18:47:04.93 ID:4ThlZrTR0.net]
>>948

g_dictCompanyInfo

982 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 18:49:08.38 ID:4ThlZrTR0.net]
>>961
もし、今後絶対、employee の情報しか入れないと言い切れるのなら、
g_dictCompanyEmploees

でもいい。何か追加する予定なら、>>961 のように「g_dictCompanyInfo」

983 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 18:51:17.31 ID:4ThlZrTR0.net]
>>948
最初の従業員のデータについては、
EmployeeInfo

二番目の dictionary の方は、
g_dictCompanyEmploeeInfo_s

984 名前:デフォルトの名無しさん [2018/10/05(金) 20:18:06.35 ID:2Vgho4wC0.net]
g_とか_sとかなんなんだそれ

985 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 21:02:11.53 ID:eXLBKWdN0.net]
秘密の呪文

986 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 21:42:38.07 ID:s/+stmcD0.net]
ハンガリアン記法とかいうMSが編み出した負の遺産

987 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 21:54:51.59 ID:wRA0FWgN0.net]
型付けるハンガリアンは糞だけど、グローバル変数にg_付けるのは普通でしょ
付けないの?

988 名前:デフォルトの名無しさん [2018/10/05(金) 21:56:47.70 ID:zW6/2yxd0.net]
グローバル変数使わないしg_つけてもなんの役にも立たないし



989 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 22:29:36.85 ID:dsZIcecxM.net]
スコープを示すハンガリアンは変数のスコープを不必要に広げることに対する心理的抵抗を低減するという点で害悪

990 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 22:48:31.92 ID:qdFd1sVz0.net]
あの複雑怪奇な名前解決ルールを受け入れているC++使いからしてみれば、変数が
ローカルかグローバルかなんてわざわざ目印付けるほどのことじゃないのかも

991 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 22:49:02.31 ID:SgefIaql0.net]
パブロフの犬カヨ
グローバル変数の先頭に「g_」を付け続けると
そのうち先頭に「g_」とつけただけで

992 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:02:57.02 ID:SgefIaql0.net]
しかしいかにクラスFooに関連するオブジェクトは全部Fooのコンストラクタかsetterで渡すか一時オブジェク
トとしてメソッドの引数として都度渡すのがオブジェクト指向設計としての理想とはいえ実際には対数表のカ
スタマイズ版みたいにかなり普遍的な意味を持つテーブルTが存在する前提でいっぱいクラスを定義したい
ときもあるわけでそういうときはテーブルTをグローバル変数とした方がスマートに書けるTがこの世に1つし
かないのにいちいちインスタンス毎にTへのポインタを持たせるのですかみたいな、

で、そうするとグローバルであることの目立つ標識が欲しいところだがオリジナルの規則を考えるのもアホら
しいので使用人口が多そうな「g_」を使う

993 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:05:20.25 ID:cQzHZ22n0.net]
60億人がシステムハンガリアンの良さを発見できなかった
そういうことだ

994 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:06:16.17 ID:cQzHZ22n0.net]
せっかく自動化したものを蒸し返す愚行
機械に使われる人間に自ら志願するようなことでしかない

995 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:14:36.32 ID:MM5jcfpFM.net]
ハンガリアン記法が滅亡した時にgとかsとかのスコーププレフィックスも一緒に絶滅したと思うの。

996 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:19:28.57 ID:SgefIaql0.net]
もうそういうのは見飽きたからハンガリアン無差別否定派とアプリケーションハンガリアン推進派が頃しあって消滅してくれたらいいのに…

997 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:22:01.95 ID:4ThlZrTR0.net]
「ハンガリアン記法を使うと、コードの断片からでも何かを発見できる。」

998 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:25:38.27 ID:4ThlZrTR0.net]
C#では、メンバ変数 aaa をアクセスする時には、必ず、
「this.aaa」
とするらしい。これは、C++で、ハンガリアン記法を使った場合の、
「m_aaa」
に該当する。this. と m_ では、後者のほうが短く便利。

m_ も、this. も付けない場合、たとえば、コンストラクタで
同じ意味の仮引数を使いたい場合に、何らかの別の名前を
考えなければならなくなる。



999 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:26:32.77 ID:eEmdo3hB0.net]
サイズ変更してキャパシティ変更になったらデリートかかる可能性が高いのでそういうことを一応管理しないといけない。

1000 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:28:00.34 ID:SgefIaql0.net]
>C#では、メンバ変数 aaa をアクセスする時には、必ず、
>「this.aaa」
>とするらしい。
mjd?
いつから?次の元号から??

1001 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:29:24.93 ID:3VgmxBOW0.net]
一般的に言われているシステムハンガリアンのデメリットはg、s、mには当てはまらない。
iとかdwとかlpszみたいな糞接頭辞とは分けて考えたほうがいいと思うよ。

1002 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:31:13.38 ID:4ThlZrTR0.net]
個人的には、以下のような命名規則は大いに役立っており、
コード全体を見ずにコードの断片を見るだけで、何も考えずに
コーディングが出来ることが多くなる。おかげでずいぶん楽になった。

char *pszText;
char szText[256];
CString strText;
char **ppszText;

「sz」は、0終端文字列。s = string、z = zero。
p は、ポインタ、str は、CString。
pp は、ポインタへのポインタ。

1003 名前:デフォルトの名無しさん [2018/10/05(金) 23:36:17.35 ID:zW6/2yxd0.net]
m_がついててもそれがメンバである保証が何もないからなあ。無駄なだけ

1004 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:39:57.45 ID:4ThlZrTR0.net]
>>981
個人的には、i や dw は滅多に使わない。
lpszは、自分では使わない。pszは使う。
なぜなら、lpsz の「l」 は、16BIT時代から32BIT 時代へ移行したときの産物だから、
今は時代遅れなので。

ところで、dwRead と書くと、宣言を見返さなくても、読み込みバイト数を表す DWORD 値だと
分かって便利。dwWrite だと、その書き込み版となる。変数名が規則変化するのでとっても便利。

たとえば、「text」という変数名だと、CString 型なのか、0終端文字列なのか、
0終端が付いてないような特殊な文字列なのかが分からない。
ところが、ハンガリアン記法を使うとそれらが明確に区別できる。


0終端文字列を配列で持っているのか、それとも、そのアドレスをポインタで
持っているのかも、sz か、psz かで区別できる。

このことはバグの少ないコーディングにとても役立つ、。
頭を使わなくても機械的にコーディングできてしまうことが多くなるから。

1005 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:46:52.35 ID:SgefIaql0.net]
命名のプレフィックスに関する個人的な熱い想いはカプセルの内側に隠蔽すると良い
そういう意味で「m_」は比較的どうでも良い

1006 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:50:11.62 ID:3VgmxBOW0.net]
>>983
それを言うならあらゆるシンボル名が正しくそれを示している保証なんてないと思うよ。

>>984
そういうのはoopやtmpと相性が悪いんで…

1007 名前:デフォルトの名無しさん [2018/10/05(金) 23:51:01.17 ID:elz6X2140.net]
こういう話だけは食い付きがいい
さすがドカタ

1008 名前:デフォルトの名無しさん [2018/10/05(金) 23:52:25.87 ID:zW6/2yxd0.net]
そうだよ。だから最低限にしないといけない
無駄なものをつけるのはいらんバグを増やすだけで悪



1009 名前:デフォルトの名無しさん mailto:sage [2018/10/05(金) 23:54:14.41 ID:SgefIaql0.net]
個人的にはCのライブラリ関数名に「g_」がついていないのを遺憾に思う

1010 名前:デフォルトの名無しさん [2018/10/05(金) 23:54:47.79 ID:ZMQnisBBd.net]
今時ハンガリアン使うアホがいたとは驚きなんだがw
もう絶滅したと思ってた

1011 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:00:43.80 ID:JjdhAE/r0.net]
>>986
>そういうのはoopやtmpと相性が悪いんで…

どういう意味?

1012 名前:さまよえる蟻人間 mailto:sage [2018/10/06(土) 00:06:22.53 ID:SJezKYMvd.net]
OOP == オブジェクト指向プログラミング
TMP == テンプレート/temporary

1013 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:07:22.53 ID:JjdhAE/r0.net]
何で相性が悪いのかが分からぬ。

1014 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:11:20.65 ID:d9G2ZJ030.net]
いかにハンガリアン否定派といえども
いざ実際ハンガリアンで書かれた変数名を見たら体が反応してしまうということなんだろJK
鍛錬が足りん

1015 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:14:20.26 ID:JjdhAE/r0.net]
ずっと前に、ハンガリアン記法で書かれた比較的大きなソース・コードを見て
とても分かりやすかったので自分もそれに習っただけなんだよね。

1016 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:23:46.06 ID:PyrakEMK0.net]
実際みんなが叩いてるから叩いてるってやつはいるだろうな
俺も別に悪くはないと思うよ
自分から進んで使おうとは思わないが

1017 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:28:00.98 ID:GMmUDkcN0.net]
型が殖える度に変数名のプレフィックスがどんどんどん殖えていくなんてコーダー側からしたら不毛なだけ
いざ型名変えたいと思っても後ろを振り向くのが怖くなる

1018 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:33:38.42 ID:JjdhAE/r0.net]
でも、BOOL 値の変数の先頭に b を付けたりすると、ミスを発見するのに大いに役立つ
事があるよ。



1019 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:36:41.02 ID:GMmUDkcN0.net]
読む側にとってはな
書く側は細心の注意を払わないといけない
簡単に後戻りできないからな
メンテ効率最悪なんだよ

1020 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:38:54.48 ID:CdYUXXMG0.net]
次はpart139でいいのか?

1021 名前:デフォルトの名無しさん mailto:sage [2018/10/06(土) 00:42:40.48 ID:tQclXtq/0.net]
ハンガリアンは、集団にその命名方法が周知されていないといけないので、周知するところから始めないといけない。
周知できればコスト低減できるが、それまでのコストをどうみつもる?

1022 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 8時間 40分 40秒

1023 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<321KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef