#include <iostream>
using namespace std;
class programming {
protected: int variable;
public:
programming() {
cout << "In constructor\n";
input_value();
}
~programming() {
cout << "In destructor\n";
output_value();
}
void input_value() {
cout << "In function input_value\n";
variable = 100;
}
void output_value() {
cout<< "Variable is "<< variable << "\n";
}
void onemorefunction() {
if(variable%2) {
cout << "Variable is odd\n";
}
else cout << "Variable is even\n";
}
};
int main(int argc, char *argv[]) {
programming object;
object.onemorefunction();
return 0;
}
Wenn das obige Programm läuft es gibt:Warum gibt mein C++ - Programm dies aus?
In constructor In function input_value Variable is even In destructor Variable is 100
Ich bin neu in C++ und ich habe Schwierigkeiten, warum er druckt alle diese Zeilen aus. Ich würde denken, es würde nichts ausdrucken, da nur die onemorefunction Funktion aufgerufen wird und das wars. Jede Hilfe wird geschätzt. Vielen Dank!
Der Destruktor wird immer aufgerufen, wenn die Lebensdauer eines Objekts endet. In diesem Fall endet die Lebensdauer des Objekts, wenn das Programm beendet wird. – UnholySheep
* Was * Teil der Ausgabe ist schwer zu verstehen? Sie kennen den Lebenszyklus von Objekten und wie sie * konstruiert * und * zerstört * werden? –
Das richtige Werkzeug, um solche Probleme zu lösen, ist Ihr Debugger. Sie sollten Schritt für Schritt durch Ihren Code * gehen, bevor Sie auf Stack Overflow nachfragen. Für weitere Hilfe lesen Sie bitte [Wie kleine Programme zu debuggen (von Eric Lippert)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Zumindest sollten Sie Ihre Frage so bearbeiten, dass sie ein [minimales, vollständiges und verifizierbares] (http://stackoverflow.com/help/mcve) Beispiel enthält, das Ihr Problem zusammen mit den Beobachtungen, die Sie im Debugger gemacht haben, reproduziert . –