问题描述
#define IP "127.0.0.1"
#define PORT "8001"
string strUrl = IP + ":"+ PORT + "/test-web/test/testquery";
//此处编译报错 error: invalid operands of types ‘const char [10]’ and ‘const char [2]’ to binary ‘operator+’
原因
因为string类重载了+=和+
string operator+ (const string& lhs, const char* rhs);
string& operator+= (const string& str);
而你的char *和 char *想加则不行了,两个指针相加是不行的(这里也不可能隐式转换)。
正确方式
string strUrl = string(IP) + ":"+ string(PORT) + "/test-web/test/testquery";
补充
1、可以string + char*,也可以char* +string,不可以char* + char*;
2、宏定义字符串为char*;