我正在尝试通过向原始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+
我在做什么事吗?
答案 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*