C++ explizite Typ fehlt('int' angenommen)
Hallo ich habe ein Fehler in meinem c++ - code. Ich habe 2 .cpp-Dateien und 1 .h-Datei, Im Versuch, Zugang 5 strings und 1 int in der header-Datei, aber ich bekomme eine Fehlermeldung, die sagt "expliziten Typ fehlt('int' angenommen).
Habe ich einige andere Fehler, zu denen sind: Fehlende Typ-Bezeichner, Shops::Artikel, die Neudefinition; unterschiedliche Basistypen, Überladene Funktion unterscheidet sich nur durch den Rückgabetyp und die Erklärung unvereinbar ist.
Hier sind meine Dateien:
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
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;
}
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";
}
Fehler-Zeile
Shops::Items(string Item1, string Item2, string Item3, string Item4, string Item5, int Items)
Alle der code ist noch nicht fertig, so dass ich hoffe, Sie können mir helfen, finden und beheben Sie diese Fehler.
Vielen Dank im Voraus, und wenn Sie brauchen mehr info fragt mich einfach.
- Ich glaube Daniel ist Ihre Frage beantwortet. Ein Vorschlag: statt 5 Saiten in Ihre Klasse und Ihre Funktion Signatur, warum nicht Sie verwenden, vector<string>?
- Raja ist ein guter Punkt. Übergabe in vector<string> ermöglicht es Ihnen, so viele items wie du, ohne betroffen die Signatur der Methode, und Sie werden in der Lage sein, zu bestimmen, wie viele Elemente Sie haben durch die Verwendung von Vektor-Größe() entfernen die Notwendigkeit, den pass in einem Artikel zu zählen.
- Ich bekomme diese Fehlermeldung bei Gelegenheit, wenn einer meiner Konstruktoren hat einen Tippfehler drin.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fehlt der Rückgabetyp in der Implementierungsdatei (cpp) für Geschäfte::Items, die eine Doppel-auf der Grundlage von, was Sie haben in Ihrem header-Datei. Die anderen Fehler, die Sie haben, sind sehr wahrscheinlich im Zusammenhang.
Es ist ein wenig beunruhigend, dass eine Methode mit dem Namen main, die innerhalb Ihrer Klasse als es normalerweise eine Funktion, name für Ihr Programm-Einstiegspunkt.
Fehlt der Rückgabetyp in der definition in
Items.cpp
:Müssen Sie auch wieder etwas Wert, sowohl für
Shops::Items
und für die Klasse'main
Funktion.Bezug auf die Namensgebung: Es sieht seltsam, haben die "normalen"
main
Funktion repliziert innerhalb der Klasse und es sieht auch seltsam, haben einen parameter mit dem Namen genau wie die Klasse benannt ist. Es macht in der Tat Arbeit, aber ich würde die Flagge und es in einen code-review FWIW. 🙂Items
, da dies wird sicherlich Auseinandersetzung mit Ihrer Methode der KlasseItems(...)
wenn Sie versuchen, verwenden Sie die variable.struct Items
oder::Items
.