c++ - 将对象类数组传递给函数

标签 c++ string

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

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

该函数将接收我的充满类对象的数组和 3 个字符串。当我尝试构建时,我遇到了各种各样的错误。我会一一列举。

“访问者”未在此范围内声明

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

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

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

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

最佳答案

这些错误意味着名称 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,一个 unionenumtypedef 到其他类型)...

#pragma once

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

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

关于c++ - 将对象类数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16028210/

相关文章:

python - 使用 Python 将国际字符替换为基本拉丁字符的好方法是什么?

java - 限制字符串中的字符数,并截断其余字符

c - 如何在C中自动定义字符串长度?

c++ - 如何通过函数参数返回动态数组?

c++ - 使用 std::map 从数组中删除重复项

java - String 是 Android 或 Java 中的原语还是对象?

c - 在C中解析和拆分来自txt文件的字符串

c++ - 表现。寻找子串。 substr 与查找

c++ - 将 2 个 int 值从子进程传递给父进程的方法

c++ - wxWidgets - 事件表与 Connect()?