Problemet er disse linier:
void print (const Person &p)
{
Person x;
print (x);
std::string sk;
if (sk == "Y")
Her erklærer du en funktion, denne bliver aldrig rigtigt kaldt.
print funktionen tager en const reference til en Person som argument, denne bruges ikke.
Derpå opretter du en Person objekt, og kalder print funktionen med dette objekt, print er netop funktionen selv, så hvis man kaldte print (rigtigt) ville den gå i en uendelig løkke.
Derpå opretter du en std::string objekt sk, som ikke får nogen værdi, den vil derfor være tom.
Og du spørger derpå om strengen indeholder "Y", det gør den ikke, den er tom.
I stedet bør du lave print om til:
void print (const Person &p)
{
cout << p.navn << endl;
cout << p.adresse << endl;
cout << p.navn << endl;
}
Og så kalde funktionen fra main:
print(t);
Så mangler du bare at gøre noget fornuftigt med disse to linier fra nyKontakt:
std::cin >> st;
fflush(stdin);
Det mest logiske er nok at flytte dem til main, og lave en if(...) samme sted.
Indlæg senest redigeret d. 21.03.2008 01:16 af Bruger #4996