0

我一直在寻找解决错误的方法,但在任何地方都找不到我的案例。所以我有一个功能

int getUniques(Visitors info[], string address, string startDate, string endDate);

该函数将接收我的充满类对象的数组和 3 个字符串。当我尝试构建时,我得到了各种各样的错误。我会把它们都列出来。

未在此范围内声明“访客”

“地址”之前的预期主表达式(其他字符串也是如此)

表达式列表在初始化程序中被视为复合表达式

任何人都知道这些是什么意思以及如何解决它们?

编辑:大声笑我知道我很愚蠢,我现在修复了它,但我还有其他我想解决的问题。如果我仍然无法让我的方法发挥作用,我将在一段时间内重新发布并重新发布。

4

2 回答 2

2

这些错误意味着名称Visitors并且string未被 C++ 编译器识别为类型......

为了工作,你的类型声明Visitors必须在函数声明之前;在同一个源文件或包含在#include预处理器指令中的头文件中。

此外,C++string类型在标准头文件中定义string,必须在使用前包含在内,并且类型包含在命名空间std中,因此您需要使用全名std::string或声明您正在使用该using指令:

#include <string>
#include "visitors.hpp"

using std::string;

int getUniques(Visitors info[],
               string address,
               string startDate,
               string endDate);

visitors.hpp文件中,您的类型定义(可能是 a class,但也可能是 a struct、 an union、 anenum或 atypedef到其他类型)...

#pragma once

class Visitors {
     ... // Your class definition.
};

请注意,在头文件中使用该using指令是一种不好的做法,因为它会污染包含您的头文件的编译单元的默认命名空间。如果是这种情况,您应该使用全名std::string

于 2013-04-16T03:32:27.433 回答
0

“访客信息”是传递给函数的数组的声明吗?

如果是这样,您需要声明它是什么类型的变量。例如。整数数组或字符串数​​组

所以一个更正的函数声明可能是。

int getUniques(string Visitors_info[], string address, string startDate, string endDate);

假设我正在解释您的代码试图正确执行的操作。

于 2013-04-16T03:30:30.133 回答