0

私の質問は文の効果に基づいています ,void print(const string& msg = "")と比較した場合の違いは何ですかvoid print(const string& msg),

で印刷関数を使用する場合、main()関数にパラメーターを渡さずに関数を呼び出すことはできますprint()か? のようにp.print()

class Point {
      int i, j, k;
    public:
      Point(): i(0), j(0), k(0) {}
      Point(int ii, int jj, int kk)
        : i(ii), j(jj), k(kk) {}
      void print(const string& msg = "") const {
        if(msg.size() != 0) cout << msg << endl;
        cout << "i = " << i << ", "
             << "j = " << j << ", "
             << "k = " << k << endl;
      }
    };

    int main() {
      Point p, q(1,2,3);
      p.print("value of p");
      q.print("value of q");
    } ///:~
4

2 に答える 2

3

うん、それはデフォルトのパラメータです。指定しない場合は、空の文字列が使用されます。

したがって、 を呼び出すことは、 を呼び出すp.print()ことと同じp.print("")です。

于 2012-05-15T10:23:03.493 に答える
2

はい、できます。これは、パラメーターのデフォルト値として知られています。したがって、呼び出しp.print()は p.print("") の呼び出しと同じです。

C++ で参照渡しする際のパラメータのデフォルト値も関連する読み物です。

于 2012-05-15T10:24:39.260 に答える