Mat*_*w C 0 c++ int compiler-errors header class
嗨,我的c ++代码有错误.我有2个.cpp文件和1个.h文件,我试图从头文件中访问5个字符串和1个int,但是我得到一个错误,上面写着"显式类型丢失('int'假设).
我还有一些其他错误:缺少类型说明符,Shops :: Items重定义; 不同的基本类型,重载函数只有返回类型不同,声明不兼容.
这是我的文件:
UserChoice.h
#include <iostream>
#include <string>
using namespace std;
#ifndef USERCHOICE_H
#define USERCHOICE_H
class Shops
{
public:
double Items(string, string, string, string, string, int);
int main()
{
std::cout << newItem1;
}
private:
string newItem1;
string newItem2;
string newItem3;
string newItem4;
string newItem5;
int newItems;
};
#endif
Run Code Online (Sandbox Code Playgroud)
Items.cpp
#include "UserChoice.h"
Shops::Items(string Item1, string Item2, string Item3, string Item4, string Item5, int Items)
{
newItem1 = Item1;
newItem2 = Item2;
newItem3 = Item3;
newItem4 = Item4;
newItem5 = Item5;
newItems = Items;
}
Run Code Online (Sandbox Code Playgroud)
Source.cpp
#include "UserChoice.h";
#include <string>
int main()
{
string Item1;
string Item2;
string Item3;
string Item4;
string Item5;
int items;
std::cout << "What what you like? Chicken, Meat, Fish, Carrot or Apple?\n";
std::cin >> Item1;
std::cout << "\nAnything else?\n";
std::cin >> Item2;
if(Item2 == "nothing else")
{
}
std::cout << "\nAnything else?\n";
std::cin >> Item3;
std::cout << "\nAnything else?\n";
std::cin >> Item4;
std::cout << "\nAnything else?\n";
std::cin >> Item5;
std::cout << "\nAnything else?\n";
}
Run Code Online (Sandbox Code Playgroud)
错误行
Shops::Items(string Item1, string Item2, string Item3, string Item4, string Item5, int Items)
Run Code Online (Sandbox Code Playgroud)
所有代码还没有完成,所以我希望你能帮我找到并修复这些错误.在此先感谢,如果您需要更多信息,请问我.
您缺少Shops :: Items的实现文件(cpp)中的返回类型,根据您在头文件中的内容,它将是一个double.您遇到的其他错误很可能是相关的.
在你的类中有一个名为main的方法有点令人不安,因为它通常是用于程序入口点的函数名.
您缺少定义中的返回类型Items.cpp:
double Shops::Items(string Item1, string Item2, string Item3, string Item4, string Item5, int Items)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
您还需要为类的函数Shops::Items和类的main函数返回一些值。
关于命名:main在类中复制“正常”函数看起来很奇怪,并且参数的名称与类的名称完全相同也看起来很奇怪。它确实有效,但我会在代码审查 FWIW 中标记它。:)