我试图在头文件中声明函数返回字符串,因为我将从objective-c调用它。基本上这会起作用,不是吗?
std::string myFunction();
但它会抛出错误消息“预期”;在顶级声明者之后“,搜索了很多,每个人都建议将#include放在头文件中,我也尝试过但是它不起作用,这次它会抛出另一条错误信息”'找不到''''文件。“
让另一个函数返回double并且没有问题。
double doSomething(double a);
-
#include <string>
不起作用它会抛出错误消息,说“'string'文件未找到”。我试图创建新项目以防万一我可能会被损坏但是如果我在搜索路径中放一些东西它不起作用?
最后我做到了。 解决方案:已将“编译源代码”设置更改为“构建设置/ Apple LLVM编译器4.2”下的 Objective-C ++ ,它就像魅力一样。
答案 0 :(得分:3)
至少,您必须包含C ++标准库头string
,其中声明了类std::string
(实际上,它是类模板的typedef,但那是另一个物质)。
#include <string>
std::string myFunction();
您还应确保在自己的标题中使用include guards。
答案 1 :(得分:1)
你错过了头文件:
#include <string>
答案 2 :(得分:1)
你必须记住ObjC文件是基于C而不是C ++构建的,如果你想在Objective-C中使用C ++文件,你需要将ObjC文件的扩展名从.m更改为.mm以使其成为ObjC ++文件,否则就像试图在C文件中包含C ++标题一样。