-1

私はこのコードを見ました

  void path(
    const char * p);
  » more...

void path(
    const std::string & p);
  » more...

基本的に * と & を逆にして、次の変更を行うことはできますか。

void path(
    const char & p);
  » more...

void path(
    const std::string * p);
  » more...
4

3 に答える 3

3

1 つ目は、文字の配列を最初の文字へのポインタとして渡します。これは、文字列が C で慣習的に処理される方法であり、2 つの言語の共通の遺産により、C++ でも見られることがあります。参照を渡して、それが実際には配列であると想定されていることを注意深く文書化することはできますが、その規則に慣れている人にとっては混乱を招くでしょう。

2 つ目は、参照によって単一のオブジェクトを渡すことです。ポインターを使用して参照をエミュレートすることもできますが、これは C++ の参照セマンティクスに慣れている人にとっては (やや) 混乱を招く可能性があります。

于 2013-08-03T19:40:25.183 に答える
-1

はい、できます。ただし、これらの関数での.およびの使用には注意が必要です->

意味が強引に変わることに注意してください

于 2013-08-03T19:44:10.777 に答える