const char *类型的无效操作数

时间:2015-06-12 21:06:41

标签: c++

我正在尝试通过向原始const char* b添加新字符串“hello”来创建新的const char* a

const char* a = some_code_here;
const char* b = (a + "_hello").c_str();

我得到的错误是:

error: invalid operands of types const char* and const char [6] to binary operator+

我在做什么事吗?

2 个答案:

答案 0 :(得分:5)

切换到字符串,即std::string 在我之后重复,忘记使用char或C风格的字符串 如您所示,这是许多问题之一。

我说过切换到std::string了吗?

你的char *是一个指针。没有更多,没有更少,一个指针。指向单个char的指针;不是结构。 char数据类型没有方法。

切换到std::string

您可以添加(连接)std::string

切换到std::string

std::string具有c_str()方法。除非你了解后果,否则不要使用;完全。

答案 1 :(得分:3)

您无法在C ++中任意添加class MyObject(object): def saveas(self, filename): if not validate_filename(filename): return False ... 。这些对象只是指向连续内存部分的指针,因此添加它们并不合理。相反,您应该使用if not myobject.saveas(filename): report_and_retry() 类:

const char*