IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Constructeur standard, "nummer" non déclaré?


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Oui
    Inscrit en
    décembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Autriche

    Informations professionnelles :
    Activité : Oui

    Informations forums :
    Inscription : décembre 2022
    Messages : 31
    Points : 6
    Points
    6
    Par défaut Constructeur standard, "nummer" non déclaré?
    Salut, désolé pour l’édition, je ne sais pas pourquoi. Le compilateur dit «*nom identificateur non déclaré*». Merci pour l’aide



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    class Element {
    private:
    	int nummer;			//  nombre
    	string name;		// le nom
    	float dichte;		// Densité
    	float atomMasse;		//	masse atomique
    public:
    	Element();
    	Element(int num, string nam, float dic, float aMas) : nummer(num), name(nam), dichte(dic), atomMasse(aMas) {}
    	Element( Element& elem) {
    		Element(elem.nummer, elem.name, elem.dichte, elem.atomMasse);
    	}
    	Element& operator=(Element& elem) {
    		nummer = elem.nummer;
    		name = elem.name;
    		dichte = elem.dichte;
    		atomMasse = elem.atomMasse;
    		return *this;
    	}
    	void setNummer(int num);
    	int getNummer();
    	string getName();
    	void setName(string nam);
    	float getDichte();
    	void setDichte(float dic);
    	float getAtomMasse();
    	void setAtomMasse(float aMas);
    	void printElemente();
    	friend void elementEinlesen();
    	~Element() {}
    };
     
     
    class Psde {
    	int nummerInPsde;
    	string s_name;
    public:
    	Psde& operator=(Psde& psde) {
    		nummerInPsde = psde.nummerInPsde;
    		s_name = psde.s_name;
    		return *this;
    	};
    	Psde get_psde() { return *this; }
    	int get_nummerInPsde() { return nummerInPsde; }
    	string get_s_name() { return s_name; }
    	Psde(int nummerPsd = 1, string nam = "") :nummerInPsde(nummerPsd), s_name(nam) {}
    	void printElemente();
    	void printElemente_f(ofstream out, Psde psd);
    	friend std::ofstream& operator<<(std::ofstream&, const Psde&);
    	~Psde(){}
    };
    Element* elePtr;
    Element::Element() {
    	nummer = 0;		//	nombre
    	name = "";			//	nom
    	dichte = 0.0;		// densite
    	atomMasse = 0.0;		// masse atomique
    }
     
    int Element::getNummer() { return nummer; }
    string Element::getName() { return name; }
    float Element::getDichte() { return dichte; }
    float Element::getAtomMasse() { return atomMasse; }
    }
    [/CODE]

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2006
    Messages : 416
    Points : 657
    Points
    657
    Par défaut
    Salut,

    Utilises des accolades pour initialiser les membres de ta classe, cela évitera les ambiguïtés.

    De quoi parle-t-on ici ?
    L'appel d'une fonction appelée nummer ?
    Le constructeur d'une classe appelée nummer ?
    L'initialisation de la variable membre appelée nummer ?

    Pour toi (humain), la réponse est évidente. Pour le compilateur .... non justement. Il à sous la main 3 scenarios qui correspondent, et pas de chance pour toi, celui qu'il à choisit n'est pas celui que tu attendais.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Oui
    Inscrit en
    décembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Autriche

    Informations professionnelles :
    Activité : Oui

    Informations forums :
    Inscription : décembre 2022
    Messages : 31
    Points : 6
    Points
    6
    Par défaut Merci de votre aide
    Cher deedolit,
    Je traduis mes textes de l'allemand vers le français. Et je traduirai vos réponses en allemand. Cela a bien fonctionné jusqu'à présent, mais plus maintenant, pourquoi*? Je ne sais pas.
    J'ai étudié le français pendant 2 ans et maintenant je veux l'améliorer. Essaye de comprendre.
    Vladimir
    Merci.

  4. #4
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    décembre 2015
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2015
    Messages : 1 493
    Points : 7 245
    Points
    7 245
    Par défaut
    Bonjour,

    Le code que tu fournis ne semble pas avoir l'erreur que tu indiques.
    Il nous manque quelque chose. Par exemple le vrai code, et le texte exact de l'erreur avec son numéro de ligne.

    Il y a par contre des erreurs dans ton code que le compilateur devrait indiquer sous la forme d'avertissements.
    Ainsi ton constructeur par copie ne fait pas du tout ce qu'il faut. La ligne 11 crée un objet Element temporaire détruit immédiatement. Il n'y a pas construction de l'Element ici.
    Par le constructeur par copie, l'opérateur de copie, et le destructeur ne pas les définir est bien mieux. Dans ce cas le compilateur va faire ce qu'il faut dans ces cas et ne fera pas d'erreurs contrairement à ton code.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2006
    Messages : 416
    Points : 657
    Points
    657
    Par défaut
    Lien vers la documentaion officielle: Brace initialization:
    https://learn.microsoft.com/en-us/cp...?view=msvc-170

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Oui
    Inscrit en
    décembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Autriche

    Informations professionnelles :
    Activité : Oui

    Informations forums :
    Inscription : décembre 2022
    Messages : 31
    Points : 6
    Points
    6
    Par défaut Merci dalfab, merci deedolith
    Salut, à la fin est }; c’est faux, peut-être aussi à la fin du tableau PeriodsistemTheElements[]? J’ai plus de 100 messages d’erreur de compilateur, les Element de classe ne sont pas définis, la classe Psde n’est pas définie et tous les attributs etc. Sans table, le programme a fonctionné, je suppose que le problème?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    // Elemente3.h
    #include <string>
    #include <iostream>
    #include <fstream>
    using namespace std;
     
    class Element {
    private:
    	int nummer;			//  nombre
    	string name;		// le nom
    	float dichte;		// Densité
    	float atomMasse;		//	masse atomique
    public:
    	Element();
    	Element(int num, string nam, float dic, float aMas) : nummer{ num }, name{ nam }, dichte{ dic }, atomMasse{ aMas } {}
    	Element( Element& elem) {
    		Element{ elem.nummer, elem.name, elem.dichte, elem.atomMasse };
    	}
    	Element& operator=(Element& elem) {
    		nummer{ elem.nummer };
    		name{ elem.name };
    		dichte{ elem.dichte };
    		atomMasse{ elem.atomMasse };
    		return *this;
    	}
    	void setNummer(int num);
    	int getNummer();
    	string getName();
    	void setName(string nam);
    	float getDichte();
    	void setDichte(float dic);
    	float getAtomMasse();
    	void setAtomMasse(float aMas);
    	void printElemente();
    	friend void elementEinlesen();
    	~Element() {}
    };
     
     
    class Psde {
    	int nummerInPsde;
    	string s_name;
    public:
    /*	Psde& operator=(Psde psde) {
    		nummerInPsde { psde.nummerInPsde };
    		s_name{ psde.s_name };
    		return *this;
    	};		*/
    	Psde get_psde() { return *this; }
    	int get_nummerInPsde() { return nummerInPsde; }
    	string get_s_name() { return s_name; }
    	Psde(int nummerPsd = 1, string nam = "") :nummerInPsde{ nummerPsd }, s_name{ nam } {}
    	void printElemente();
    	void printElemente_f(ofstream out, Psde psd);
    	friend std::ofstream& operator<<(std::ofstream&, const Psde&);
    	~Psde(){}
    };
    //Element* elePtr;
    Element::Element() {
    	nummer { 0};		//	nombre
    	name { " "};			//	nom
    	dichte { 0.0};		// densite
    	atomMasse{ 0.0 };		// masse atomique
    }
     
    int Element::getNummer() { return this->nummer; }
    string Element::getName() { return this->name; }
    float Element::getDichte() { return this->dichte; }
    float Element::getAtomMasse() { return this->atomMasse; }
     
    void Element::printElemente() {
    	cout << "Element: " << name << " Nummer in Perioden System: " << nummer
    		<< " hat die Dichte: "
    		<< dichte << " und Atommasse: " << atomMasse << endl;
    }
     
    void Element::setNummer(int num) {
    	nummer = num;
    }
     
    void Element::setName(string nam) {
    	name = nam;
    }
     
    void Element::setDichte(float dic) {
    	dichte = dic;
    }
     
    void Element::setAtomMasse(float aMass) {
    	atomMasse = aMass;
    }
    void elementEinlesen() {
    	int anzahl = 1;
     
    	Element *elePtr = new Element();
    	int ein_nummer;
    	string ein_name;
    	float ein_dichte, ein_atomMasse;
    	cout << "Bitte die Nummer des Elements: ";
    	cin >> ein_nummer;
    	elePtr->setNummer(ein_nummer);
     
    	cout << "Bitte die Name des Elements: ";
    	cin >> ein_name;
    	elePtr->setName(ein_name);
     
    	cout << "Bitte die Dichte des Elements: ";
    	cin >> ein_dichte;
    	elePtr->setDichte(ein_dichte);
     
    	cout << "Bitte die Atommasse des Elements: ";
    	cin >> ein_atomMasse;
    	elePtr->setAtomMasse(ein_atomMasse);
    }
     
    void Psde::printElemente() {
    	cout << " Symbol: " << s_name << " Nr.: " << nummerInPsde << endl;
     
    }
     
    /*void Psde::printElemente_f(ofstream out, Psde psd) {
    	out << psd << '\t';
    }
     
    */
     
    Psde PeriodensystemDerElemente[] = { {0,""}, {1,"H"},{2,"He"},{3,"Li"},{4,"Be"}, {5,"B"}, {6, "C"},
    {7,"N"}, {8, "O"}, {9,"F"}, {10,"Ne"} ,{11, "Na"} , {12, "Mg"}, {13, "Al"}, {14,"Si"}, {15, "P"},
    {16,"S"}, {17,"Cl"}, {18,"Ar"},{19, "K"}, {20, "Ca"},{21,"Sc"},{22,"Ti"},{23,"V"}, {24, "Cr"},
    	{25,"Mn"}, {26,"Fe"}, {27,"Co"},{28,"Ni"},{29,"Cu"},{30,"Zn"}, {31,"Ga"},{32,"Ge"},{33,"As"}
    ,{34,"Se"},{35,"Br"},{36,"Kr"},{37,"Rb"},{38,"Sr"},{39,"Y"},{40,"Zr"},{41,"Nb"},{42,"Mo"},{43,"Tc"},
    	{44,"Ru"},{45,"Rh"},{46,"Pa"},{47,"Ag"},{48,"Cd"},{49,"In"},{50,"Sn"},{51,"Sb"},{52,"Te"},
    	{53,"I"},{54,"Xe"}, {55,"Cs"},{56,"Ba"},{57,"La"},{58,"Ce"}, {59,"Pr"},{60,"Nd"},{61,"Pm"},
    	{62,"Sm"},{63,"Eu"},{64,"Gd"},{65,"Tb"} ,{66,"Dy"},{67,"Ho"},{68,"Er"},{69,"Tm"},{70,"Yb"} ,
    	{71,"Lu"},{72,"Hf"},{73,"Ta"},{74,"W"},{75,"Re"},{76,"Os"},{77,"Ir"},{78,"Pt"},{79,"Au"},
    	{80, "Hg"},{81,"Tl"},{82,"Pb"},{83,"Bi"},{84,"Po"},{85,"At"},{86,"Rn"},{87,"Fr"},{88,"Ra"},
    	{89,"Ac"},{90,"Th"},{91,"Pa"},{92,"U"},{93,"Np"},{94,"Pu"},{95,"Am"},{96,"Cm"},{97,"Bk"},
    	{98,"Cf"},{99,"Es"},{100,"Fm"},{101,"Md"},{102,"No"},{103,"Lr"},{104,"Rf"},{105,"Db"},
    	{106,"Sg"},{107,"Bh"},{108,"Hs"},{109,"Mt"},{110,"Ds"},{111,"Rg"},{112,"Cn"},{113,"Nh"},
    	{114,"Fl"},{115,"Mc"},{116,"Lv"},{117,"Ts"},{118,"Og"} };
     
    void printElementInFile(deque<Psde>  dPsde) {
    	ofstream out("PeriodSysDerElemente.txt");
    	for (deque<Psde>::iterator iter = dPsde.begin(); iter != dPsde.end(); ++iter) {
    		iter->printElemente_f(out, dPsde);
    	}
     
    	std::ofstream& operator<<(std::ofstream & ofs, Psde & psd) {
    		ofs << psd.get_nummerInPsde() << " " << psd.get_s_name() << endl;
    		return ofs;
     
    	}
    };

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Oui
    Inscrit en
    décembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Autriche

    Informations professionnelles :
    Activité : Oui

    Informations forums :
    Inscription : décembre 2022
    Messages : 31
    Points : 6
    Points
    6
    Par défaut Error Je suis desole
    Code Console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
    Schweregrad	Code	Beschreibung	Projekt	Datei	Zeile	Unterdrückungszustand
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	20	
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	21	
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	22	
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	23	
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	60	
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	61	
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	62	
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	63	
    Fehler (aktiv)	E1776	Auf "Funktion "std::basic_ofstream<_Elem, _Traits>::basic_ofstream(const std::basic_ofstream<_Elem, _Traits> &) [mit _Elem=char, _Traits=std::char_traits<char>]" (deklariert in Zeile 1064 von "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include\fstream")" kann nicht verwiesen werden (ist eine gelöschte Funktion).	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	145	
    Fehler (aktiv)	E0312	Es ist keine passende benutzerdefinierte Konvertierung von "std::deque<Psde, std::allocator<Psde>>" in "Psde" vorhanden.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	145	
    Fehler (aktiv)	E0065	Es wurde ein ";" erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	148	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	20	
    Fehler	C3321	Eine Initialisiererliste wird in diesem Kontext nicht erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	21	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	21	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	22	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	23	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	60	
    Fehler	C3321	Eine Initialisiererliste wird in diesem Kontext nicht erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	61	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	61	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	62	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	63	
    Fehler	C2664	"void Psde::printElemente_f(std::ofstream,Psde)" : Konvertierung von Argument 2 von "std::deque<Psde,std::allocator<Psde>>" in "Psde" nicht möglich	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	145	
    Fehler	C2601	"operator <<": Lokale Funktionsdefinitionen sind unzulässig	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	148	
    Warnung	C4813	"elementEinlesen": Eine Friend-Funktion einer lokalen Klasse muss bereits deklariert sein	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	35	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	20	
    Fehler	C3321	Eine Initialisiererliste wird in diesem Kontext nicht erwartet.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	21	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	21	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	22	
    Fehler	C2064	Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	23	
    Warnung	C4813	"operator <<": Eine Friend-Funktion einer lokalen Klasse muss bereits deklariert sein	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	55	
    Fehler	C2065	"nummer": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	60	
    Fehler	C2059	Syntaxfehler: ";"	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	60	
    Fehler	C2065	"name": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	61	
    Fehler	C2065	"dichte": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	62	
    Fehler	C2065	"atomMasse": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	63	
    Fehler	C2084	Funktion "int Element::getNummer(void)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	66	
    Fehler	C2084	Funktion "std::string Element::getName(void)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	67	
    Fehler	C2084	Funktion "float Element::getDichte(void)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	68	
    Fehler	C2084	Funktion "float Element::getAtomMasse(void)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	69	
    Fehler	C2084	Funktion "void Element::printElemente(void)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	71	
    Fehler	C2084	Funktion "void Element::setNummer(int)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	77	
    Fehler	C2084	Funktion "void Element::setName(std::string)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	81	
    Fehler	C2084	Funktion "void Element::setDichte(float)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	85	
    Fehler	C2084	Funktion "void Element::setAtomMasse(float)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	89	
    Fehler	C2084	Funktion "void elementEinlesen(void)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	92	
    Fehler	C2084	Funktion "void Psde::printElemente(void)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	116	
    Fehler	C2374	"PeriodensystemDerElemente": Neudefinition; Mehrfachinitialisierung	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	127	
    Fehler	C2084	Funktion "void printElementInFile(std::deque<Psde,std::allocator<Psde>>)" hat bereits einen Funktionsrumpf	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	142	
    Fehler	C2664	"void Psde::printElemente_f(std::ofstream,Psde)" : Konvertierung von Argument 2 von "std::deque<Psde,std::allocator<Psde>>" in "Psde" nicht möglich	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	145	
    Fehler	C2601	"operator <<": Lokale Funktionsdefinitionen sind unzulässig	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	148	
    Fehler	C2535	"printElementInFile::Metal::Metal(int,std::string,float,float,int,float)": Memberfunktion bereits definiert oder deklariert	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	17	
    Fehler	C2601	"printElementInFile::Metal::printElemente": Lokale Funktionsdefinitionen sind unzulässig	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	32	
    Fehler	C2144	Syntaxfehler: "int" sollte auf ")" folgen	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	39	
    Fehler	C2144	Syntaxfehler: "int" sollte auf ";" folgen	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	39	
    Fehler	C2146	Syntaxfehler: Fehlendes ";" vor Bezeichner "nam"	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	39	
    Fehler	C2065	"nam": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	39	
    Fehler	C2062	"float"-Typ unerwartet	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	39	
    Fehler	C2059	Syntaxfehler: ")"	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	39	
    Fehler	C2143	Syntaxfehler: Es fehlt ";" vor "{"	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	40	
    Fehler	C2065	"schmelzPunkt": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	41	
    Fehler	C2065	"schmPunkt": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	41	
    Fehler	C2065	"preis": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	42	
    Fehler	C2065	"prei": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	42	
    Fehler	C3861	"setNummer": Bezeichner wurde nicht gefunden.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	43	
    Fehler	C2065	"nam": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	44	
    Fehler	C3861	"setName": Bezeichner wurde nicht gefunden.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	44	
    Fehler	C2065	"dic": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	45	
    Fehler	C3861	"setDichte": Bezeichner wurde nicht gefunden.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	45	
    Fehler	C2065	"aMas": nichtdeklarierter Bezeichner	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	46	
    Fehler	C3861	"setAtomMasse": Bezeichner wurde nicht gefunden.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\MetalElemente3.h	46	
    Fehler	C2601	"main": Lokale Funktionsdefinitionen sind unzulässig	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.cpp	10	
    Fehler	C1075	{: kein übereinstimmendes Token gefunden.	PeriodSysElemente3	C:\Users\conrad\source\repos\meineÜbungen\PeriodSysElemente3\PeriodSysElemente3\Elemente3.h	142

  8. #8
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    décembre 2015
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : décembre 2015
    Messages : 1 493
    Points : 7 245
    Points
    7 245
    Par défaut
    Pour les erreurs, il faut surtout s'intéresser à la première car les autres peuvent être les conséquences d'une incompréhension syntaxique. L'idée est que si une ligne n'a pas de sens, le compilateur ne comprends plus rien dans la suite.

    Ici l'erreur est bien celle qui t'a été signalée. Elle est indiquée ligne 20 du fichier Elemente3.h.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Element& operator=(Element& elem) {
    		nummer{ elem.nummer };
    		name{ elem.name };
    		dichte{ elem.dichte };
    		atomMasse{ elem.atomMasse };
    		return *this;
    	}
    La syntaxe pour initialiser les 4 champs est invalide.
    Il faut leur donner une valeur, ça donnerait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Element& operator=(Element const& elem) {
    		nummer = elem.nummer;   // ça n'est pas la création d'une variable, c'est la modification de sa valeur
    		name = elem.name;
    		dichte = elem.dichte;
    		atomMasse = elem.atomMasse;
    		return *this;
    	}
    On peut aussi ne pas définir l'opérateur de copie, par défaut tout est copié donc ici le définir n'importe rien.

    Dans le constructeur par copie, il y a une erreur similaire mais là le compilateur l'indique en avertissement pas en erreur, c'est pourtant tout aussi grave.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Element( Element& elem) {
    		Element{ elem.nummer, elem.name, elem.dichte, elem.atomMasse };  // crée un Element temporaire NE MET PAS A JOUR l'Element
    	}
    Quatre possibilités de correction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Element( Element const& elem ) : nummer{elem.nummer}, name{elem.name}, dichte{elem.dichte}, atomMasse{elem.atomMasse} {
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Element( Element const& elem ) {   // moins bonne solution, on a créé les 4 champs puis on leur donne une valeur
    		nummer = elem.nummer; 
    		name = elem.name;
    		dichte = elem.dichte;
    		atomMasse = elem.atomMasse;
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element( Element const& elem)  = default;  // Ici comme quasiment tout le temps, compilateur sait faire ça tout seul
    LA dernière consiste à ne pas définir ce constructeur.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Oui
    Inscrit en
    décembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Autriche

    Informations professionnelles :
    Activité : Oui

    Informations forums :
    Inscription : décembre 2022
    Messages : 31
    Points : 6
    Points
    6
    Par défaut Merci dalfab
    Merci, 100 erreurs, j’étais désespéré, merci!

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Oui
    Inscrit en
    décembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Autriche

    Informations professionnelles :
    Activité : Oui

    Informations forums :
    Inscription : décembre 2022
    Messages : 31
    Points : 6
    Points
    6
    Par défaut #define ELEMENTE3_H
    Chers amis, je l’ai appris et pratiqué dans les livres de Bruce Eckel, sans comprendre pourquoi: #ifndef ELEMENTE3_H #define.... Maintenant je sais, dans MetalElemente3.h j’inclus 2ème fois Elements3.h



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Elemente3.cpp
    #include <iostream>
    #include <list>
    #include <deque>
    //#include "Elemente3.h"
    #include "MetalElemente3.h"

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    7 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 7 031
    Points : 32 519
    Points
    32 519
    Billets dans le blog
    4
    Par défaut
    https://cpp.developpez.com/faq/cpp/?...un-fichier-cpp
    Sinon il y a plus simple : #pragma once
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Oui
    Inscrit en
    décembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Autriche

    Informations professionnelles :
    Activité : Oui

    Informations forums :
    Inscription : décembre 2022
    Messages : 31
    Points : 6
    Points
    6
    Par défaut Merci Bousk
    Je vais essayer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] quote non ouverte ou non fermée
    Par guitz dans le forum Langage
    Réponses: 0
    Dernier message: 15/07/2012, 14h19
  2. Réponses: 3
    Dernier message: 20/01/2007, 21h36
  3. Problème avec des composants non déclarés
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/01/2005, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo