宏字符串相加(char*相加)的问题

问题描述

#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*;

发布了111 篇原创文章 · 获赞 0 · 访问量 2091

猜你喜欢

转载自blog.csdn.net/weixin_38932035/article/details/104629380