【发布时间】:2012-03-14 10:49:16
【问题描述】:
直奔业务:我的代码大致如下:
char* assemble(int param)
{
char* result = "Foo" << doSomething(param) << "bar";
return result;
}
现在我得到的是:
error: invalid operands of types ‘const char [4]’ and ‘char*’ to binary ‘operator<<’
编辑:
doSomething 返回 char*。
那么,我该如何连接这两者呢?
附加信息:
编译器:g++ 4.4.5 on GNU/Linux 2.6.32-5-amd64
【问题讨论】:
-
请注意,
<<从左到右分组,而不是从右到左分组。因此,当您看到std::cout << a << b << c时,这并不意味着“连接a、b 和c 并将结果写入std::cout”,并且<<不是连接运算符。它的意思是(((std::cout << a) << b) << c),即“将a、b和c依次写入std::cout”。operator<<for streams 返回流本身,正是为了支持这种链接。
标签: c++ arrays string concatenation