2

gcc で次のエラーが発生します。

invalid conversion from ‘char**’ to ‘const char**’

このコードで。

void foo( const int &argc, const char **argv );

int main( int argc, char *argv[] )
{
   foo( argc, argv );                                                            
}

どうしてこれなの?

4

1 に答える 1

8

関数のパラメーター リストで使用する場合、char *argv[]宣言は宣言と同じchar **argvです。このため、に渡すときは、実際には型から型への変換を試みてい argvます。これは違法です。違法である理由については、FAQ http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.17を参照してください。fooargvchar **const char **

于 2010-06-21T09:16:33.993 に答える