なぜ、C++コンパイラは次のコードに対して文句を言わないのですか?なぜchar *へのcharの追加についてコンパイラが不平を言っていませんか?
#include<iostream>
int main()
{
const char* p ="Hello";
std::string q = p + 'H';
std::cout << q << std::endl;
}
そして、それは間違いなく次のコードコンパイラによってスロー
#include<iostream>
int main()
{
const char* p ="Hello";
std::string q = p + "World";
std::cout << q << std::endl;
}
エラー文のエラーを投げ
最初のコードがスローされなかった理由は、誰かが理解し、私を助けることができる
test.cxx: In function 'int main()':
test.cxx:5: error: invalid operands of types 'const char*' and 'const char [6]' to binary 'operator+'
エラー文?
** 'H' **のためにある可能性があります。 'std :: string q = p + 'H';'、** "H"で試してください** –