不同的 C++ 连接运算符

问题描述 投票:0回答:1

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++ 字符串,对吗?

c++ string-concatenation
1个回答
0
投票

您可以通过将字符串文字(相同类型)依次列出来连接它们。

"something" filename

成为

"something" "./temp"

变成

"something./temp"

但是,您不能使用

operator+
连接 C 字符串(文字或其他形式)。没有
char* operator+(const char* lhs, const char*)
可用(这需要它为结果字符串动态分配内存)。

© www.soinside.com 2019 - 2024. All rights reserved.