Fit -Funktionssignature: Der folgende Code kompiliert weiterhin. Wie ist es möglich? [Duplikat]
Posted: 11 Apr 2025, 10:14
Lassen Sie uns 3 Dateien haben: < /p>
personne.h: < /li>
< /ul>
#include
#include
using namespace std;
struct Personne {
string nom;
string prenom;
int age;
Personne();
Personne(string nom, string prenom, int age);
Personne(Personne const*);
virtual ~Personne();
void set(Personne);
};
< /code>
personne.cpp: < /li>
< /ul>
#include "Personne.h"
Personne::Personne() : nom(NULL) {}
Personne::Personne(string nom0, string prenom0, int age0) :
nom(nom0),
prenom(prenom0),
age(age0)
{}
Personne::Personne(Personne const* copied) :
nom(copied->nom),
prenom(copied->prenom),
age(copied->age)
{}
Personne::~Personne() {}
void Personne::set(Personne copied) {
cout
#include "Personne.h"
int main()
{
cout set(*moi_pointeur);
return 0;
}
< /code>
In main.cpp sollte Zeile 8 einen Kompilierungsfehler erzeugen, da sie nicht zur Signatur der in Personne.h deklarierten Funktion entspricht und persönlich implementiert wurde. Zeile 8 verwendet die festgelegte Funktion mit Personne* anstelle von Personne als Argument.>
personne.h: < /li>
< /ul>
#include
#include
using namespace std;
struct Personne {
string nom;
string prenom;
int age;
Personne();
Personne(string nom, string prenom, int age);
Personne(Personne const*);
virtual ~Personne();
void set(Personne);
};
< /code>
personne.cpp: < /li>
< /ul>
#include "Personne.h"
Personne::Personne() : nom(NULL) {}
Personne::Personne(string nom0, string prenom0, int age0) :
nom(nom0),
prenom(prenom0),
age(age0)
{}
Personne::Personne(Personne const* copied) :
nom(copied->nom),
prenom(copied->prenom),
age(copied->age)
{}
Personne::~Personne() {}
void Personne::set(Personne copied) {
cout
#include "Personne.h"
int main()
{
cout set(*moi_pointeur);
return 0;
}
< /code>
In main.cpp sollte Zeile 8 einen Kompilierungsfehler erzeugen, da sie nicht zur Signatur der in Personne.h deklarierten Funktion entspricht und persönlich implementiert wurde. Zeile 8 verwendet die festgelegte Funktion mit Personne* anstelle von Personne als Argument.>