我一直在四处寻找修复我的错误但我无法在任何地方找到我的情况。所以我有一个功能
int getUniques(Visitors info[], string address, string startDate, string endDate);
该函数将在我的数组中加入Class Objects和3个字符串。当我尝试构建时,我会遇到各种各样的错误。我会列出所有。
'访客'未在此范围内宣布
'address'之前的预期primary-expression(其他字符串也是如此)
表达式列表在初始值设定项中被视为复合表达式
任何人都知道这些是什么意思以及如何解决这些问题?
编辑:大声笑我知道我这么傻,我现在修好了,但我还有其他问题需要引导。如果我仍然不能让我的方法工作,我将重新做我的帖子,并在一段时间后重新发布。答案 0 :(得分: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
文件中,您的类型定义(可能是class
,但也可以是struct
,union
,enum
或a typedef
到其他类型)...
#pragma once
class Visitors {
... // Your class definition.
};
请注意,在头文件中使用using
指令是一种不好的做法,因为它会污染包含头的编译单元的默认命名空间。如果是这种情况,您应使用全名std::string
。
答案 1 :(得分:0)
“Visitors Info”是否将数组的声明传递给函数?
如果是这样,您需要声明它是什么类型的变量。例如。整数数组或字符串数组
所以纠正的函数声明可以是。
int getUniques(string Visitors_info[], string address, string startDate, string endDate);
假设我正在解释您的代码正在尝试正确执行的操作。