1

良い実装の考え方を始めるためにあなたの助けが必要です.

次の単純なプログラムを作成する必要があります。 )。関数呼び出しで 2 番目のパラメーターが指定されていない場合は、名前を 10 回出力する必要があります。関数呼び出しで最初のパラメーターが指定されていない場合は、プログラムの作成者名/ライター (つまり、私の名前) を出力する必要があります。

デフォルトのパラメーターを使用して次の関数を作成することを考えていました。

void printTextToScreenNTimes(char * text = "guy", int n = 10);

この関数の実装は次のとおりです。

void printTextToScreenNTimes(char * text, int n) {
  int i;
  for (i = 0; i < n; i++)
    cout << text << " ";

}

デフォルト名を 2 回印刷しようとすると、問題が発生します。たとえば、次の関数呼び出しのみを使用したい場合:

void printTextToScreenNTimes(3);

関数にデフォルト名 (この場合は "guy") を 3 回出力させたいのですが、最初のパラメーターを入力する必要があるため、それは不可能です。

自分の名前を保持するグローバル パラメータを使用するしかありませんか?

4

2 に答える 2

4

オーバーロード:

void printTextToScreenNTimes(int x)
{
    printTextToScreeNTimes("guy", x);
}
于 2012-10-27T09:46:01.813 に答える
0

私はあなたがあなたの要件を読みすぎていると思います。名前を指定しないことに関する2番目の部分は、最初の部分(カウントを指定しない)も適用される場合にのみ適用されると思います。

しかし、いずれにせよ、Luchianが説明したように、オーバーロードを使用してそれを解決できます。

于 2012-10-27T09:46:55.717 に答える