2

我正在使用 Borland C++ Builder 6 来尝试做一些简单的字符串连接。但是,我遇到了一个我认为有趣的问题。

我能在网上找到的所有东西都表明我应该能够做这样简单的事情:

String word = "a" + "b" + "c";

但是,当我尝试编译此代码时,我收到“无效的指针添加”错误。我可以将每个部分分配给它自己的变量并将每个部分加在一起以获得所需的输出。但是,鉴于这是一个多么简单的例子,我认为这是不必要的。

我能够使与上述类似的东西按需要工作的唯一方法是这样做:

String a = "";
String word = a + "a" + "b" + "c";

我的问题是:为什么第二个例子可以正常工作,但第一个例子不行?

4

2 回答 2

3

原因是类型"a"char*(即:pointer-to-char),也就是说当你写

"a" + "b"

您正在尝试将指针添加到一起,这是不允许的。

当你创建一个String类型时,它operator+被重载了,所以

String a = "";
a + "b"

向 a 添加一个指向字符的指针String,它有自己的连接定义。

于 2012-06-06T16:02:26.450 回答
0

我不太确定,但这可能是因为争论。第一行中的“a”是char*,因此添加其他字符串仍然会产生结果,char*并且无法直接将其分配给 oaString对象。第二种情况表明,如果第一个参数是String类型,所有结果也是字符串,所以赋值是可能的。

于 2012-06-06T16:04:36.063 回答