overthestardust overthestardust 2013-02-20 19:55:18

[C++] なんで、そんなインデントの仕方なの? このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

そのメンバ関数のインデントは見づらいよ。 あと、自分自身への memsetはやめて。ほんとに。 他にもいろいろ突っ込みどころが… こんなコードが世の中に出回っているのです…

typedef class _CFoo {
public:
   int num;
   vector<int> numbers;
   // その他メンバ変数群

_CFoo(void);
void func(void);
// その他メンバ関数群がずらずら
} CFoo, *LPCFoo;

_CFoo::_CFoo(void)
{
    memset(this,0,sizeof(CFoo));
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(9)

#1 kuma056 kuma056 2013-02-19 08:54:23  

インデントは整形ツールでなんとかなるけど、memset(this は論外でしょ

#2 keiichiroh keiichiroh 2013-02-22 21:44:08  

何がうんこって、memsetできないというようなイレギュラーな仕様をこれでもかと持ち込んだどっかの言語こそがうんこ。 コーダーのせいじゃないよコレは。

#4 bolero_MURAKAMI bolero_MURAKAMI 2013-05-01 17:09:40  

「memsetできない」のが問題なのではなく、C++はどこかの聳え立つクソと違ってまともな型システムを持っているので、memset なんぞを濫用する必要がないというだけの話です。

#5 ncaq ncaq 2013-05-01 17:17:45  

なんでmemsetなんてする必要があるんですか(正論)

#8 keiichiroh keiichiroh 2013-05-10 02:13:28  

そーいや、そーか。extern "c" とかどっちつかずで線引きが微妙すぎ。自分みたいな古代人だとC++は単なる"より良きC"って認識なんだけど、近代人にとってはオブジェクト指向言語なのね。K&Rの延長であるべきと思いこむ世代と、ARMが原点として見る世代の、ジェネレーションギャップか。古代人の視点だと「より良くないC」じゃんという。

#9 utubyou009 utubyou009 2018-08-07 23:52:26  

C言語のstruct の習慣を引きずっている気がします。 メンバ変数がpublicとか _CFoo を CFoo で型名付け直しとか。 memset this はC言語互換構造体ならあるいは・・・コンストラクタを作ってるから互換ではない。あかん。 そもそも、C言語でも構造体に「取り敢えずmemsetで初期化」はしない方がいいと思います。

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] is禁止令

このエントリーをはてなブックマークに追加

ウンコードの趣旨とは違い、レビューで指摘...

// Mod yamada Start

// 一般的に考えて真偽値を返すメ...

鑑賞する »

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[C] すげーちゃんと動く!

このエントリーをはてなブックマークに追加

結合試験2日前に脱退したうんkプログラマ...

return 0;

鑑賞する »