如何在C++中返回多个文件中的多个类型和值
How to return multiple types & values in multiple files in C++
我在返回多个类型时遇到问题。我知道有一些人在这方面遇到了麻烦,但我的情况不同。我正在使用头文件,但它们不是。这是我的代码。
//in Fruit.h
#include <string>
#include <tuple>
using namespace std;
class Fruit {
private:
string Fruitname;
int Fruitamount;
public:
Fruit(string name, int amount);
tuple(string, int) getFruitStats();
~Fruit();
};
在C++文件中
//in Fruit.cpp
#include "Fruit.h"
#include <string>
#include <tuple>
using namespace std;
Fruit::Fruit(string name, int amount)
{
Fruitname = name;
Fruitamount = amount;
}
tuple<string,int> Fruit::getFruitStats() {
}
Fruit::~Fruit()
{
}
错误消息如下:
- 没有重载函数"Fruit::Fruit"的实例与Fruit.cpp中指定的类型行7匹配
- 成员"Fruit::string"不是Fruit.cpp中的类型名称行7
- C2597非法引用Fruit.cpp中的非静态成员"Fruit::string"第7行
- C2146语法错误:Fruit.cpp中标识符"name"第7行前缺少")">
- C2143语法错误:缺少";"在Fruit.cpp的第8行"{"之前
- C2447"{":Fruit.cpp中缺少函数头(旧式形式列表?)第8行
- 类"Fruit"在Fruit.cpp中没有成员"getFruitStats"行12
- C2556"std::tuple Fruit::getFruitStats(void
- C2371"水果::getFruitStats":重新定义;Fruit.cpp中不同基本类型的行12
- Fruit.h中类模板"std::tuple"的参数列表缺少第13行
- 应为Fruit.h中的")"行13
- 应为Fruit.h中的标识符行13
- C2955"std::tuple":类模板的使用需要Fruit.h中第13行的模板参数列表
- C2143语法错误:Fruit.h中'13之前缺少')'
- C2079"Fruit::string"在Fruit.h中使用了未定义的类"std::tuple"第13行
- C2062类型"int"意外为13在水果中。h
- C4430缺少类型说明符-假定为int。注意:C++不支持Fruit.h中的默认int行13
第一条错误消息是根本原因。
问题是声明和定义不匹配。在.h
文件中,您声明了Fruit::getFruitStats()
以返回int
。但是,在.cpp
文件中,您定义了Fruit::getFruitStats()
以返回tuple<string,int>
。
若要解决此问题,请更改声明的返回类型以匹配定义。(…反之亦然,只要它们匹配)
即,将.h
文件中的int getFruitStats();
更改为tuple<string,int> getFruitStats();
相关文章:
- avrogencpp能为模式中的每种类型生成单独的头文件吗
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 如何从文本文件中读取数值,直到遇到字符类型?
- 如何将文本文件的特定行读取到 int 类型的数组中C++?
- 给定一个C++嵌套的私有结构类型,是否有从文件范围静态函数访问它的策略
- 使用 Boost.Spirit 解析具有混合数据类型的 OBJ 文件?
- 通过C++从目录中过滤特定文件类型
- C++模板编程设计问题 - 根据输入文件返回不同的类型
- C2011: 'Card':"类"类型重新定义(尽管使用了包含保护并且没有在文件中重新定义.cpp类)
- std::ifstream 在读取文件中最后一项时设置 eofbit,但仅在读取数值类型时发生
- 将类型保存到文件
- 我的头文件 DNode 中的我的数据类型未被识别为数据类型
- 当前不会命中断点。没有调试器目标代码类型的可执行代码与此文件关联
- Ini 文件类型名称 预期C++
- 用于随机数据访问的最有效文件类型
- Visual Studio 2019 - 设置文件类型的默认扩展名
- 如何在CTreeCtrl中获取所选项目的文件类型?文件扩展名可能被隐藏,因此 GetItemText 没有帮助
- 设计跨平台多内容类型文件格式的最佳方法
- 只计算*.cpp和*.h类型文件中的行数
- 当构造函数具有相同的参数类型(文件路径)时,如何从数组创建(初始化)std::元组