将对象类数组中的字符串传递给函数

Passing Object Class array a strings to function

本文关键字:函数 字符串 对象 数组      更新时间:2023-10-16

我一直在寻找一个修复我的错误,但我不能找到我的情况下任何地方。我有一个函数

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

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

' visitor '未在此范围内声明

在'address'之前期望的主表达式(其他字符串也一样)

在初始化式

中作为复合表达式处理的表达式列表

有谁知道这些是什么意思以及如何修复它们吗?

编辑:哈哈,我知道我是如此愚蠢,我现在修复了它,但我有其他问题,我想进入。我要重新做我的帖子和重新张贴在一段时间,如果我仍然不能得到我的方法工作。

这些错误意味着名称Visitorsstring没有被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, enumtypedef到其他类型)…

#pragma once
class Visitors {
     ... // Your class definition.
};

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

是"访问者信息"的数组传递给函数的声明?

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

所以正确的函数声明可以是。

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

假设我正确地解释了你的代码要做的事情