2

文字列を渡すことは、C++ で""呼び出して文字列を渡すことと同じですか?std::str("")

たとえば、引数として受け入れる関数が与えられたstd::str場合:

void funcA(std::string arg) {
    arg = "abc";
}

またはで呼び出す必要がありますfuncA(std::string("abc"));funcA("abc");?つまり、2 番目のバージョンは char の配列からの型キャストですか?

4

1 に答える 1

4

それらは同等です。コンストラクターstd::string::string( char const * )は として宣言されていないため、 からへの変換を提供するために暗黙的explicitに呼び出されます。暗黙的な呼び出しは、明示的な呼び出し ( として記述) と同じことを行います。char *stringstd::string("abc")

于 2013-04-13T05:01:21.373 に答える