2017-03-28 2 views
0

immer wenn ich das Programm ausführen, gibt es keine Ausgabe, das Programm endet einfach. Mache ich etwas falsch? Ich bin mir sicher, dass ich etwas übersehen habe, aber ich kann es nicht herausfinden.Freund Funktion nicht ausdrucken, was es sollte

#include <iostream> 
#include <string> 

using namespace std; 

class Addr 
{ 
public: 
    Addr(int i = 0){ 
     total = i; 
    } 

void addNum(int num){ 
    total += num; 
} 

int getNum(){ 
    return total; } 

friend int print(Addr& var); 

private: 
    int total; 
}; 

int print(Addr& var){ 
    return var.total; 
} 

int main() 
{ 
    Addr object1; 
    object1.addNum(3); 
    print(object1); 

    return 0; 
} 
+1

Wenn Sie etwas drucken möchten, sollten Sie 'cout' verwenden, zum Beispiel:' cout << print (object1); '. Ihr Code wird ordnungsgemäß ausgeführt. – eyllanesc

Antwort

0

Ihr Programm verhält sich korrekt. Es gibt keine Ausgabe, weil Sie in Ihrem Programm nichts auf die Konsole drucken.

Die print Funktion gibt nur die total zurück.

Wenn Sie den Wert auf die Konsole drucken möchten, dann können Sie zum Beispiel die Definition wie folgt ändern:

int print(Addr& var){ 
    cout << var.total << endl; // this prints to the console output 
    return var.total; 
} 
0

Es gibt keine Problem mit Ihrem Code. Tatsache ist, dass keine Druckfunktion verwendet wird. Ich habe deine Hauptfunktion geändert.

int main() 
{ 
    Addr object1; 
    object1.addNum(3); 

    cout<<print(object1); 

    return 0; 
} 
+0

vielen dank! –

Verwandte Themen