2017-05-21 2 views
1

j'ai obtenu ces 2 fichiers pour l'instant et chaque fois que je veux compiler je reçois chaîne ne nomme pas une erreur de type à Bestellung.h ligne std :: string name; Pourquoi ? Thx main.cppstd :: sting? chaîne ne nomme pas une erreur de type

#include "Bestellung.h" 
    #include <iostream> 
    using namespace std; 

    int main() 
    { 
     Bestellung(); 
     cout << Bestellung{"maki"} << endl;// [maki,10€] 
     return 0; 
    } 

Bestellung.cpp

#include "Bestellung.h" 

Bestellung(string bestellV,double preisV=10){ 
    name="bestell V"; 
    preis="preis V"; 
    }; 
string get_name const(Bestellung v) { 
    return Bestellung.name; 
    }; 
double get_preis const(Bestellung v){ 
    return Bestellung.preis; 
    }; 
ostream& print(ostream&) const{ 
    }; 

Bestellung.h

#ifndef BESTELLUNG_H 
#define BESTELLUNG_H 
#include <string> 
#include <iostream> 

class Bestellung{ 
private: 
    std::string name; 
    std::double preis; 

    public: 
    Bestellung(string,double=10); 
    string get_name const { 
    }; 
    double get_preis const{ 
    }; 
    ostream& print(ostream&) const{ 
    }; 

}; 
#endif 
+0

plusieurs endroits dans "bestellung.h" vous ne parvenez pas à utiliser 'std ::' où requis –

Répondre

0

Vous devez utiliser un qualificatif d'espace de noms. Vous avez:

Bestellung(string,double=10); 

Vous devriez avoir:

Bestellung(std::string,double=10); 

Vous avez aussi:

string get_name const { 

Vous devriez avoir:

std::string get_name const { 

Si vous ne voulez pas spécifiez l'espace de noms std chaque fois e Vous utilisez une chaîne, vous pouvez le faire vers le début:

using std::string; 

que dans les fichiers Doing d'en-tête est une mauvaise pratique, alors je voudrais simplement utiliser les pleines qualifications comme je l'ai dit en premier. Après avoir corrigé cette erreur, vous devez faire la même chose que ostream vous avez aussi.

En savoir plus sur les espaces de noms here.

+0

Je reçois toujours l'erreur avant même d'y arriver (Bestellung (std :: string, double = 10), pour une raison quelconque, je obtenir la ligne de message d'erreur ci-dessus à std :: string name, j'ai lentement l'impression que mon compilateur fonctionne mal – Latrellvie