C++ 串联操作数 '+' 不同形式 ' '。
在学校*,在 C++ 中,我们总是使用“+”运算符来连接字符串..例如:
string a = "hello"+" world.";
但是今天我正在编写这样的代码:
#define filename "./temp"
[...]
function("something "+filename);
编译器对此不满意:
invalid operands to binary expression ('const char[9]' and 'const char[7]')
后来发现这样写:
#define filename "./temp"
[...]
function("something" filename);
成功了。 这是为什么??
附注我觉得我还应该指定我的学校经常将 C 的东西混合到 C++ 中..但是 '+' 只适用于 C++ 字符串,对吗?
您可以通过将字符串文字(相同类型)依次列出来连接它们。
"something" filename
成为
"something" "./temp"
变成
"something./temp"
但是,您不能使用
operator+
连接 C 字符串(文字或其他形式)。没有 char* operator+(const char* lhs, const char*)
可用(这需要它为结果字符串动态分配内存)。