0

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

Grocery.cpp 中,我正在尝试使用“Strings”类中的一个名为:“copyString”的函数,但出现以下错误:

标识符“copyString”未定义

“字符串”类只是基本字符串函数的通用类,例如:strcmp、strcpy 等......

在“杂货”类中,我不想创建“字符串”对象,而是像在 C# 中使用“数学”类一样使用它。只需标明类名并使用点来调用该类的函数。

如何创建一个与上面描述的 C# 中的“数学”类具有相同功能的“字符串”类?

非常感谢!盖伊

4

3 回答 3

2

要么你有一个Strings带有方法的类getStringLength(),在这种情况下你需要调用getStringLength()一个Strings实例:

Strings s = ....;
s.getStringLength();

或者您有一个Strings带有该方法的命名空间,在这种情况下,您需要像这样调用它:

Strings::getStringLength();

如果函数与类无关Strings,请考虑在合适的命名空间中将其设为非成员函数:

字符串.h:

namespace StringFunctions
{
  int getStringLength();
}

字符串.cpp:

StringFunctions::getStringLength() { return 42; }
于 2012-11-04T19:05:14.403 回答
1

从您的图像看来,您正在声明getStringLength(一个自由函数)并尝试使用它,但将函数定义为好像它是 type 的成员一样Strings

会不会是你在Strings::不知道为什么的情况下写作?你不会因为文件被调用而写Strings.cpp

自由(非成员)函数Strings::在其定义之前没有。从到目前为止你在评论中告诉我们的内容来看,我认为你唯一的错误是Strings::在你不应该写的时候写。

于 2012-11-04T19:04:27.387 回答
0
  1. 通常不应包含 .cpp 文件。
  2. 您必须在要使用的文件中包含要使用的文件。
于 2012-11-04T19:04:06.307 回答