类未定义

时间:2012-11-04 19:00:22

标签: c++

我有两个类,一个叫Grocery,另一个叫Strings

Grocery.cpp 中我试图使用名为“copyString”的“Strings”类中的函数,我收到以下错误:

  

标识符“copyString”未定义

“Strings”类只是基本字符串函数的泛型类,例如:strcmp,strcpy等....

在“Grocery”类中,我不想创建“Strings”对象,但在C#中使用它就像“Math”类一样。只需指明类名并使用点来调用类的函数。

如何使用与上述C#中的“Math”类相同的功能创建一个“Strings”类?

非常感谢! 盖

3 个答案:

答案 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)

  1. 您通常不应包含.cpp文件。
  2. 您必须在要使用的文件中包含要使用的文件。