我有两个类,一个叫Grocery
,另一个叫Strings
在 Grocery.cpp 中我试图使用名为“copyString”的“Strings”类中的函数,我收到以下错误:
标识符“copyString”未定义
“Strings”类只是基本字符串函数的泛型类,例如:strcmp,strcpy等....
在“Grocery”类中,我不想创建“Strings”对象,但在C#中使用它就像“Math”类一样。只需指明类名并使用点来调用类的函数。
如何使用与上述C#中的“Math”类相同的功能创建一个“Strings”类?
非常感谢! 盖
答案 0 :(得分:2)
您有一个课程Strings
,方法getStringLength()
,在这种情况下,您需要在getStringLength()
个实例上调用Strings
:
Strings s = ....;
s.getStringLength();
或者您使用该方法有一个名称空间Strings
,在这种情况下,您需要像这样调用它:
Strings::getStringLength();
如果该函数与Strings
类无关,请考虑在合适的命名空间中将其作为非成员函数:
Strings.h:
namespace StringFunctions
{
int getStringLength();
}
Strings.cpp:
StringFunctions::getStringLength() { return 42; }
答案 1 :(得分:1)
在您的图片中,您似乎正在声明getStringLength
(自由函数)并尝试使用它,但定义该函数就好像它是Strings
类型的成员一样。
在没有真正了解原因的情况下,您是否正在撰写Strings::
?你不能仅仅因为文件被称为Strings.cpp
而写出来。
免费(非会员)功能在其定义之前没有Strings::
。从你到目前为止在评论中告诉我们的内容来看,我认为你唯一的错误就是在你不应该做的时候写Strings::
。
答案 2 :(得分:0)