- 1 名前:仕様書無しさん mailto:sage [2007/04/02(月) 12:45:06 ]
- この会社辞めようと思ったソースコード。
プログラマとして幻滅するソースコード。 プログラマを悩ませるソースコード。 をつらつらと綴っていって頂戴。 ちなみにここは質問スレじゃないので 技術的な質問がしたいならム板 pc11.2ch.net/tech/ に逝って。 前スレ この会社辞めようと思ったソースコード#15 pc11.2ch.net/test/read.cgi/prog/1167117526/
- 6 名前:仕様書無しさん [2007/04/05(木) 03:12:51 ]
- 気付かんかったorz
>>1 乙です >>5 修正前のコードはコメントアウトして残す規約のプロジェクトに参加したとき 気付けば全体の95%くらいがコメントになっていて目眩がしたことならある ねぇcvsくらい導入しようよ・・・
- 7 名前:仕様書無しさん mailto:sage [2007/04/05(木) 06:32:40 ]
- >>6
CVSを導入しつつもそういうルールのあるプロジェクトやったこと多々ある・・・
- 8 名前:仕様書無しさん mailto:sage [2007/04/05(木) 17:42:27 ]
- switch(iCnt){
case 10: 〜処理1〜 break; case 20: 〜処理2〜 break; case 30: 〜処理3〜 break; (中略) case 100: 〜処理100〜 break; default: break; } というのがあって、処理1、処理2・・・処理100の実質的な内容は全て同じ。 違うのはループカウンタがそれぞれiCntになっているだけ。 作者を殺したいと初めて思いました
- 9 名前:仕様書無しさん mailto:sage [2007/04/05(木) 17:58:37 ]
- switch case といえば、こういうコードが冗長に見えてしまう時期が俺にもありました・・・
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { /* Windows DLL callback entry point */ BOOL r; switch (fdwReason) { case DLL_PROCESS_ATTACH: r = DllProcessAttach(hinstDLL, lpvReserved); break; (途中省略) default: r = DllMainError(hinstDLL, lpvReserved); } return r; } static BOOL DllProcessAttach(HINSTANCE hinstDLL, LPVOID lpvReserved) { return TRUE; } static BOOL DllThreadAttach(HINSTANCE hinstDLL, LPVOID lpvReserved) { return TRUE; } static BOOL DllThreadDetach(HINSTANCE hinstDLL, LPVOID lpvReserved) { return TRUE; } static BOOL DllProcessDetach(HINSTANCE hinstDLL, LPVOID lpvReserved) { return TRUE; } static BOOL DllMainError(HINSTANCE hinstDLL, LPVOID lpvReserved) { return FALSE; }
- 10 名前:仕様書無しさん mailto:sage [2007/04/05(木) 18:53:53 ]
- 1.VB.NETでOn Error Goto HOGE を連発 TryーCatchがいっこもない
2.クラスが殆どない モジュールうじゃうじゃ グローバルマンセー
- 11 名前:仕様書無しさん mailto:sage [2007/04/06(金) 02:08:34 ]
- >>9
関数テーブル作っちゃいかんの?
- 12 名前:仕様書無しさん mailto:sage [2007/04/06(金) 12:05:59 ]
- >>7
ウチの会社のことか
- 13 名前:仕様書無しさん mailto:sage [2007/04/06(金) 12:58:37 ]
- >>7それなんてT芝?
一部だとは思うけどさ
- 14 名前:7 mailto:sage [2007/04/06(金) 13:09:26 ]
- いや、みいそ系
- 15 名前:仕様書無しさん mailto:sage [2007/04/06(金) 13:15:25 ]
- >>14
( ´゚д゚`)アチャー やっぱ大手の名前あっても上がだめな所はまだそんなのやってるんだな・・・
- 16 名前:仕様書無しさん mailto:sage [2007/04/06(金) 13:36:36 ]
- メーカー系はまず碌なものじゃない、と疑ってかからないと。
そういやF通には、C/C++ の「const」の存在を知ってる奴が どれくらいいるんだろう。
- 17 名前:仕様書無しさん mailto:sage [2007/04/06(金) 17:55:09 ]
- >>16
そ・・・そんなに勉強不足なのか? 君と一緒に仕事したその会社の連中は・・・・ まぁ、俺もにたような経験はあるが・・・
- 18 名前:仕様書無しさん [2007/04/06(金) 18:01:02 ]
- if (GetServer()->GetConnection() == GetConnection() &&
GetConnection()->BackendMinimumVersion(8,0) && !GetConnection()->HasFeature(FEATURE_FILEREAD)) hints.Add(HINT_INSTRUMENTATION); 頼むから省略するなと。
- 19 名前:仕様書無しさん [2007/04/06(金) 23:01:16 ]
- constとstaticを理解するのは
- 20 名前:仕様書無しさん mailto:sage [2007/04/07(土) 12:25:22 ]
- CVSやVSS使ってても、元のコードはコメントアウトして残すプロジェクトしかみたことねえよ。
みかかとでーたとあいびーむがそうだったんだが。 削除させてくれるプロジェクトってあるのか?
- 21 名前:仕様書無しさん mailto:sage [2007/04/07(土) 14:42:35 ]
- リリースまでならソース上で履歴残さずともOKで、
リリース後の修正はソースに履歴を残す、というのならあった
- 22 名前:仕様書無しさん mailto:sage [2007/04/07(土) 16:20:05 ]
- >>20
オレが目にできるようなプロジェクトは残してるのがないので、残さないのが当たり前だとばかり思ってたが。
- 23 名前:仕様書無しさん mailto:sage [2007/04/07(土) 16:25:38 ]
- 本来、履歴を残す必要なんてまったく無いのに、
誰か一人のボンクラが履歴を残してしまい、 その後は皆「右へならえ」で ずるずる履歴を書き込んでしまうんだよ。 「グレシャムの法則」という奴だな。
- 24 名前:仕様書無しさん mailto:sage [2007/04/07(土) 23:19:42 ]
- 修正履歴を必ず残させるコーディングルールと
サブルーチン使えば1行で済む処理が延々とコピペされたコード リファクタリングという言葉に何か恨みでもあるんだろうか。
- 25 名前:仕様書無しさん mailto:sage [2007/04/10(火) 20:20:00 ]
- >>24
あぁ、コボルと富士通の話はきりがないのでどっか他所でやってくれな。
- 26 名前:仕様書無しさん [2007/04/19(木) 23:35:59 ]
- 4 8 15 16 23 42
- 27 名前:仕様書無しさん [2007/04/19(木) 23:38:06 ]
- そーいう変な会社がうようようようよ
- 28 名前:仕様書無しさん [2007/04/19(木) 23:39:59 ]
- 元のソースは残すようにしてるけど、絶対残すルールは嫌だなあ
絶対消せルールよりはいいけど
- 29 名前:仕様書無しさん mailto:sage [2007/04/19(木) 23:43:16 ]
- いや「ぜったい消せ」のほうがマシだよ。
- 30 名前:仕様書無しさん mailto:sage [2007/04/20(金) 00:52:17 ]
- まったくだ
- 31 名前:仕様書無しさん mailto:sage [2007/04/20(金) 07:23:59 ]
- if(条件) {
b = true; a.set1(true); a.set2(true); } else { b = false; a.set1(false); a.set2(false); } if文にする意味がわかんね...
- 32 名前:仕様書無しさん mailto:sage [2007/04/20(金) 13:04:25 ]
- >>31
ソースコードにその処理の意味合いを持たせる為だと思う
- 33 名前:仕様書無しさん mailto:sage [2007/04/20(金) 13:53:20 ]
- >>31は
b = 条件; a.set1(b); a.set2(b); のように記述しないのは何故? っていってるんだよな? そして>>32の言ってることが分からん。
- 34 名前:仕様書無しさん mailto:sage [2007/04/20(金) 14:11:21 ]
- >>33
あれかな、 elseをelse ifにして拡張可能とか。
- 35 名前:仕様書無しさん mailto:sage [2007/04/20(金) 14:35:35 ]
- >>31
そりゃ、「条件」が「式」だと知らずに if (ここには条件しか書けない) b = ここには真偽値のリテラルしか書けない と思い込んでる典型的な阿呆が書いたからだろう。 そして俺も >>32 の言ってることがわからん。
- 36 名前:仕様書無しさん mailto:sage [2007/04/20(金) 15:31:47 ]
- 知らないだけで阿呆にされちゃカナワンなー
- 37 名前:仕様書無しさん mailto:sage [2007/04/20(金) 23:07:56 ]
- Option Explicitなし
if 謎の宣言なし変数>0 and hoge_index=1 Then こんなんばっか
- 38 名前:仕様書無しさん mailto:sage [2007/04/20(金) 23:47:42 ]
- option explicit って入門書にも必ず出てるのにね
- 39 名前:仕様書無しさん mailto:sage [2007/04/21(土) 03:49:33 ]
- >>36
>>35のいう通りだったとして、 ”冗長な(冗長すぎる)記述を、なんとかしようという気構えの無い奴” である可能性が95%以上とみる。 そういうやつは、すごく無知なのに知っている知識だけでソース記述しようとするんだよね。。 つまり阿呆で十分だと思うんだ。
- 40 名前:32 mailto:sage [2007/04/21(土) 05:52:50 ]
- 例えば、こう書いた場合
if (IsFileExist(path) == ture) { このブロックはファイルが存在した時の処理 } else { このブロックはファイルが存在しない時の処理 } と、ソースコードからブロックの前提条件を明示でき、 IsFileExist()の結果により処理が変わる事を強調できます。 また、同じ関数の呼び出しパスででありながらブロックを 分けている事から、「同じ関数を呼んでいるが、行う処理は IsFileExist()によって違うものになるよ。将来、処理の内容が 変わるかもよ。」と示唆することが出来ます。 これは社内で取り決めなどが無くても、ある程度経験のある人なら 読み取れる事だと私は考えております。 また、以下のように書かない理由は、 b = IsFileExist(path); a.set1(b); a.set2(b); bはファイルの有無を意味しているが、 set1(),set2()の引数は"ファイルの有無を指定する"という 仕様ではない場合に、bの示すものと引数の意味合いが 異なってしまう為です。 これが悪い書き方とは言いませんが、値が同じだからといって、 意味合いの違うものを無闇に使いまわすのは、 そのコードの意図を汲み取り難くすると考えます。
- 41 名前:仕様書無しさん mailto:sage [2007/04/21(土) 08:31:50 ]
- >>37
VBって、Option Explicitがあっても、 dim s as string ・・・ if s = 0 then ・・・ みたいなコードがコンパイルできるんだよな。 今、VB4からVB6にコンバートする仕事をやってて、エラーが起きたらその場で止まるオプションに変更して、 動作確認してるけど、けっこう頻繁にとまってる。 大昔に作られて、けっこう保守が入ってるのに、なんでこんなバグが残ってるんだよって感じ。
- 42 名前:仕様書無しさん [2007/04/21(土) 10:09:30 ]
- >>40
わりと同意かな・・・ つか、俺自身はブール型の引数というものが嫌いで不要だと思ってる。
- 43 名前:仕様書無しさん mailto:sage [2007/04/21(土) 10:17:07 ]
- 視点の高さがまるで違うんだな。
短いコードを書けばいいと思ってるような奴はCOBOLでもやってろって話
- 44 名前:仕様書無しさん mailto:sage [2007/04/21(土) 10:18:26 ]
- >>40
変数名がbというのは反対だが(ファイルの使用目的とそれの存在を示す意味のある名前にするべき)、俺は変数に入れてあるほうが読みやすいと感じるな。 無駄なブロックやネストはできるかぎり無いほうが読みやすいと思う。
- 45 名前:仕様書無しさん [2007/04/21(土) 10:19:21 ]
- 沖縄県の方へ(命に関わる注意事項です)
沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。 民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」等で検索をお願いします。 この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから… ※一国二制度 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。) さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。 今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。 自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。 発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
- 46 名前:仕様書無しさん mailto:sage [2007/04/21(土) 15:37:30 ]
- >>40
そりゃあ>40みたいな前提条件を勝手に組み込めばそういう解釈も可能だが シンプルな>31だけを見せられたら>33のような反応してしまうのが普通だろ。 ここで>40とは正反対の前提条件があったとして、>31のような書き方をされたら ありもしないニュアンスを醸しだしてかえって迷惑。
- 47 名前:仕様書無しさん mailto:sage [2007/04/21(土) 17:54:27 ]
- >>41
VBって暗黙の型変換が意味も無く強力過ぎ たしかVB5のときに型変換のルールが微妙に変わった様な飢餓するが 今となってはどうでもいい事だ
- 48 名前:仕様書無しさん mailto:sage [2007/04/21(土) 19:08:06 ]
- char* buf = new char[sizeof(Hoge)];
Hoge* hoge = (Hoge) buf; . . . delete[] buf; わかってねぇ〜〜〜〜〜。
- 49 名前:仕様書無しさん mailto:sage [2007/04/21(土) 19:27:18 ]
- なんかまずいの?
馬鹿にしたかったら馬鹿にしていいけど、その後でちゃんと何が分かってないのか説明してね。
- 50 名前:仕様書無しさん mailto:sage [2007/04/21(土) 19:32:28 ]
- キャストがおかしいってことか。
仮に typedef void *Hoge; だとしたらこれでOKって、いや違うC++だとアウトだ。 あれ?
- 51 名前:31 mailto:sage [2007/04/21(土) 19:37:43 ]
- >>40
>>31は、実際に見たものをココに書くために行った 抽象化の過程が悪かったと思います。 >>32及び>>40も、ごもっともだと思いますよ。 実際自分が見たコードは>>31で書いた風なものより"もっと"酷く、 貴方がされたような弁明の余地なんて無いだろう ってな感じのものでした。 実際の処理をfileの有無に替えて書くと、 if( [条件] ) { existFile = true; a.setExsitFile(true); b.setExistFile(true); } else { existFile = false; a.setExistFile(false); b.setExistFile(false); } こんな感じでした。 意味的にも書き分けるような部分ではないんです。 つまり、正に>>35の言う通りな感じかなーと思ってます。
- 52 名前:仕様書無しさん mailto:sage [2007/04/21(土) 20:34:41 ]
- パケットのデータを取り出すのによく>>48みたいなキャストするけどいかんのかね?
ま、確保したばかりの変数をキャストするのは珍しいと思うけどさ
- 53 名前:仕様書無しさん mailto:sage [2007/04/21(土) 21:27:33 ]
- >>52
普通は Hoge* hoge = new Hoge; だわな。 よくCから中途半端にC++へ移行した人がやってるのを見かける。 どうせnew=malloc程度に理解してんだろうね。
- 54 名前:仕様書無しさん mailto:sage [2007/04/21(土) 23:49:33 ]
- >>49
説明するまでもないだろ。
- 55 名前:仕様書無しさん mailto:sage [2007/04/22(日) 01:05:47 ]
- キャストは基本DQNでございます。
memcpyとか大好きなDQNがごろごろ。 大人しくCでもいじってろ。
- 56 名前:仕様書無しさん mailto:sage [2007/04/22(日) 01:30:29 ]
- 先日見たJavaコード
long hoge = 1; : Long page = Long.valueOf(String.toString(hoge)); 文字列にする意味ねぇ・・・
- 57 名前:仕様書無しさん mailto:sage [2007/04/22(日) 14:58:11 ]
- >>56
"valueOfがイイ、使え" とか言われた人間がそこで思考停止するとそうなるな...
- 58 名前:仕様書無しさん mailto:sage [2007/04/22(日) 16:21:19 ]
- >>56-57
もっと深刻な「コボラ上がり」だったんじゃないかな。 やつらは、数値="0"〜"9"の並び(=ゾーン形式)っていう観念から 離れらんないから。
- 59 名前:仕様書無しさん mailto:sage [2007/04/22(日) 23:10:42 ]
- >>48も基本がなってない。
(Hoge)じゃなく(Hoge *)だろ。
- 60 名前:仕様書無しさん mailto:sage [2007/04/23(月) 13:19:44 ]
- 主旨は違うんだけど、ここの
tp://d.hatena.ne.jp/nowokay/20070323 // null => 0, not null => 1 int p = Boolean.toString(data == null).length() - 4; ってのが好き。やられた。
- 61 名前:仕様書無しさん mailto:sage [2007/04/23(月) 15:03:51 ]
- ソースコードじゃないんだけど。
DBのDDLをバージョン管理システムに入れてまして。 外注さんが直接DBをいじっちゃったので、 リポジトリのDDLに変更を反映してくれって頼んだら。 hoge.sql(手付かず) hoge_日付.sql(新規) ってファイルがリポジトリにあって 面白かったです。
- 62 名前:仕様書無しさん mailto:sage [2007/04/23(月) 21:40:52 ]
- 最初、DLLと読んでしまったので、理解するのに時間がかかってしまった。
バージョン管理システムを、読み書きに手順が必要なファイルサーバだと 思ってる人、確かにいますね。
- 63 名前:仕様書無しさん mailto:sage [2007/04/23(月) 21:58:34 ]
- >バージョン管理システムを、読み書きに手順が必要なファイルサーバだと
>思ってる人、確かにいますね。 今のPRJリーダのことかーーーー CVSなのになぜか hoge hoge_2 hoge_3 とディレクトリを切っている。 旧ソースを全てコメントとして残したり、 日付と変更者をコメントに書いて変更箇所をサンドイッチしたり。 ストレージとしてしか使っていないよ・・・orz
- 64 名前:仕様書無しさん mailto:sage [2007/04/29(日) 14:33:46 ]
- 変更者が変質者に見えた・・・俺相当疲れてるな・・・
- 65 名前:仕様書無しさん [2007/04/30(月) 01:15:17 ]
- IF IsNumeric(Cint(value)) Then
End If orz ...
- 66 名前:仕様書無しさん mailto:sage [2007/05/01(火) 18:01:28 ]
- 元気出せ。
- 67 名前:仕様書無しさん mailto:sage [2007/05/05(土) 15:38:53 ]
- VBの類は、暗黙の型変換を禁止するオプションがほしいよぬ
- 68 名前:仕様書無しさん mailto:sage [2007/05/05(土) 16:36:40 ]
- >>67
vb.net にはあるぞ
- 69 名前:仕様書無しさん [2007/05/06(日) 14:05:22 ]
- 俺の会社ポインタ型は全部void *って全社共通で決まってるから
VBのキャストぐらいでは混乱しないよ。
- 70 名前:仕様書無しさん mailto:sage [2007/05/06(日) 14:14:37 ]
- 常に参照先の型について意識させることで社員の意識を高めようということか!
ごめん無理
- 71 名前:仕様書無しさん mailto:sage [2007/05/06(日) 15:12:53 ]
- 関数ポインタも?
- 72 名前:仕様書無しさん [2007/05/06(日) 15:33:12 ]
- 全部void *
型の意味がよくわからない使いかたしまくってるよ void hoge(int *val); こんな関数とか平気作るし
- 73 名前:仕様書無しさん [2007/05/06(日) 15:49:17 ]
- C++では関数ポインタはvoid *だとまずいんだよな
オーバーロードが解決できなくなるから こういうことやるならまだしも(できるんか?) int func(int) { ... } double func(double) { ... } void *p = reinterpret_cast<int (*)(int)> (func);
- 74 名前:仕様書無しさん [2007/05/06(日) 15:51:08 ]
- 呼び出し側書くの忘れてた
reinterpret_cast<int (*)(int)> (p)(10);
- 75 名前:仕様書無しさん mailto:sage [2007/05/06(日) 15:52:53 ]
- C++には、メンバ関数ポインタ、という鬼子もいるからね
- 76 名前:仕様書無しさん [2007/05/07(月) 11:14:57 ]
- reinterpret_cast
↑ なんでこれ導入したんだろうね。。。
- 77 名前:仕様書無しさん [2007/05/07(月) 11:58:25 ]
- いや、わりと低水準なことをするときには必要だろ。
static_castだと型変換がかかって値(メモリ上のビット列)が変化することがある。 reinterpret_castは型だけを変化させてビット列そのものは変化しない。
- 78 名前:仕様書無しさん [2007/05/07(月) 12:13:08 ]
- そんな場面あるか?
- 79 名前:仕様書無しさん mailto:sage [2007/05/07(月) 21:37:54 ]
- 組み込みとか
- 80 名前:仕様書無しさん [2007/05/08(火) 10:05:32 ]
- kwsk
- 81 名前:仕様書無しさん [2007/05/08(火) 14:28:58 ]
- ソースじゃないんだけど
あるSEがUML書きましたと言って提出してきた設計書が、 単なるフローチャートだったとき しかもパーツの意味を間違えまくっているとき
- 82 名前:仕様書無しさん mailto:sage [2007/05/08(火) 18:15:31 ]
- いいじゃんか。
全部アクティビティ図だと脳内で変換するんだ。 変換して現実から目をそむけると。 はっぴ?
- 83 名前:仕様書無しさん [2007/05/08(火) 18:54:42 ]
- フローチャートって実戦で使わないだろw
- 84 名前:仕様書無しさん [2007/05/08(火) 19:09:35 ]
- >>81
フローチャート通りに実装していいんじゃね?
- 85 名前:仕様書無しさん [2007/05/08(火) 22:07:33 ]
- 様式に神経質なぐらいこだわる奴はたいていろくでもない
要はしっかり設計できてりゃいいってのがわかってないんだよな・・・
- 86 名前:仕様書無しさん [2007/05/08(火) 22:24:16 ]
- UMLキチガイのことか
- 87 名前:仕様書無しさん mailto:sage [2007/05/08(火) 23:39:21 ]
- そうおもってさ。おぷそのつーるでグラフ化してみたわけよ、糞ソフト。
花火が見られた。 とりあえず生成結果を消した。
- 88 名前:仕様書無しさん mailto:sage [2007/05/09(水) 09:23:11 ]
- Happy99とは懐かしいな。
- 89 名前:仕様書無しさん [2007/05/09(水) 10:07:23 ]
- しあわせ99?
- 90 名前:仕様書無しさん mailto:sage [2007/05/09(水) 10:14:18 ]
- ウイルスだったよな?確か
- 91 名前:仕様書無しさん mailto:sage [2007/05/09(水) 19:20:16 ]
- 昔流行ったよな。確か花火が上がるやつだと記憶している。
- 92 名前:仕様書無しさん [2007/05/09(水) 21:54:00 ]
- >>80
たとえばnewとかで取得した領域のアライメント調整で使う #define AREASIZE 80 #define ALIGNSIZE 4 char* p; void* q; p = new char[AREASIZE+ALIGNSIZE-1]; q = reinterpret_cast<void*>((reinterpret_cast<int>(p)+ALIGNSIZE-1)&~(ALIGNSIZE-1)) // ... delete p;
- 93 名前:仕様書無しさん mailto:sage [2007/05/09(水) 22:19:23 ]
- Dim flgUmu As String = "nasi"
For Each ws In objBook.Worksheets If ws.Name = strName Then flgUmu = "ari" End If Next もうどこからツッコめばいいのかorz
- 94 名前:仕様書無しさん mailto:sage [2007/05/09(水) 22:58:11 ]
- 時々居るなぁ、Boolean使わない奴。
- 95 名前:仕様書無しさん mailto:sage [2007/05/09(水) 23:15:01 ]
- ポインタをintにキャストする香具師は、
LP64,LLP64環境で死亡で御座います
- 96 名前:仕様書無しさん mailto:sage [2007/05/09(水) 23:26:18 ]
- uintptr_tかchar*でないとマズいね。
ところで~(ALIGNSIZE-1)ってそのままで大丈夫?
- 97 名前:仕様書無しさん mailto:sage [2007/05/09(水) 23:36:30 ]
- ごめん、大丈夫そう。
- 98 名前:仕様書無しさん mailto:sage [2007/05/09(水) 23:57:03 ]
- >>96
ALIGNSIZEが2の冪乗値という条件付きだけどな 文末のセミコロンが抜けてるのは痛い>92
- 99 名前:仕様書無しさん [2007/05/10(木) 01:43:21 ]
- #define private public
#define protected public 本当にこれが書かれたコードがあった。 しかも俺のすぐ上の上司が書いたっぽい。 陰謀めいたものを感じて冷や汗が出たよ
- 100 名前:仕様書無しさん [2007/05/10(木) 09:36:17 ]
- private宣言してもリアルタイムデバッグではアクセス可能だろ?
意味なくね?
- 101 名前:仕様書無しさん mailto:sage [2007/05/10(木) 11:00:05 ]
- >>100
はあ?
- 102 名前:仕様書無しさん [2007/05/10(木) 11:49:46 ]
- 全然privateじゃないってこと
- 103 名前:仕様書無しさん mailto:sage [2007/05/10(木) 12:24:19 ]
- カプセル化の意味も判らないんなら口挟まない方がいいんじゃね?
- 104 名前:仕様書無しさん mailto:sage [2007/05/10(木) 12:31:25 ]
- そこで防御策として
#ifdef private #undef private #endif #ifdef protected #undef protected #endif と自分のヘッダの先頭に書く必要が出てくる。 もはや冷戦だな。
- 105 名前:仕様書無しさん [2007/05/10(木) 17:55:41 ]
- >>104
勘弁してください……
- 106 名前:仕様書無しさん [2007/05/10(木) 18:57:15 ]
- >>104
その後にインクルードされるヘッダファイルの中で #ifndef private #define private public #endif #ifndef protected #define protected public #endif と書かれてないか調べたか? w
|

|