Help us understand the problem. What is going on with this article?

coding > default parameterが嫌いな理由 > ソースリーディングしにくい

More than 3 years have passed since last update.

default parametertという機能がC++にはある。

使い方

使い方としては以下。

`1. ヘッダファイルにdefault値を書く

somefile.h
void someFunc(bool isTop = true, bool isLeft= false);

`2. ソースファイルにパラメータを省略した呼び出しを書く。

somefile.cpp
someFunc(); // default parameter使用
someFunc(false); // default parameter使用
someFunc(false, true); // default parameter不使用

使いたくない理由

自分がdefault parameterを嫌いな理由は「ソースリーディング中に、デフォルト値がわからない」点。別途、ヘッダファイルをいちいち読まないといけない。

小さいソフトであればそれぞれのデフォルトパラメータを記憶することもできるが、余計な記憶をしないといけない。
Readable Codeなどで紹介されているように、以下のような書き方にしておくことで、余計な記憶が不要で、コードリーディングに専念できる。

someFunc(/* isTop=*/false, /* isLeft=*/true);

関連 pros and cons

関連して default parametersのpros and cons(賛成と反対)のリンクを貼っておく。以下では賛成理由と、上記とは別の反対理由が記載されている。

http://geekswithblogs.net/BlackRabbitCoder/archive/2010/06/17/c-optional-parameters---pros-and-pitfalls.aspx

いい点もあり、悪い点もある。

場合によってはいい使い方もあるかもしれないが、自分はあまり使いたくない。

7of9
セブンオブナインです。Unimatrix 01の第三付属物 9の7という識別番号です。Star trek Voyagerの好きなキャラクターです。まとめ記事は後日タイトルから内容がわからなくなるため、title検索で見つかるよう個々の記事にしてます。いわゆるBorg集合体の有名なセリフから「お前たち(の知識)を吸収する。抵抗は無意味だ」。Thanks in advance.
qiitadon
Qiitadon(β)から生まれた Qiita ユーザー・コミュニティです。
https://qiitadon.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away