Ich habe eine Frage zu dem folgenden Code. Seine Idee ist, die Operatoren "< <" und ">>" zu verwenden, um verschiedene Werte einzugeben und zu drucken. Meine Frage ist - wie kann ich die anzahl
und zahlen
Mitglieder privat und nicht öffentlich machen? Wenn ich sie nur in Privates eintippe, kann ich sie nicht für die Methoden außerhalb der Klasse verwenden. Gibt es auch etwas, das ich im Code ändern kann, um es besser zu machen?Mitglieder von öffentlich zu privat wechseln
#include <iostream>
#include <cmath>
using namespace std;
class Liste{
public:
int anzahl;
int * zahlen;
Liste(){
cout <<"Objekt List is ready" << endl;
anzahl = 0;
}
~Liste(){
cout <<"Objekt destroyed" << endl;
delete (zahlen);
}
void neue_zahlen(int zahl){
if(zahl == 0){ return;}
if(anzahl == 0){
zahlen = new int[anzahl+1];
zahlen[anzahl] = zahl;
anzahl++;
}
else{
int * neue_zahl = new int[anzahl+1];
for(int i = 0; i < anzahl; i++){
neue_zahl[i] = zahlen[i];
}
neue_zahl[anzahl] = zahl;
anzahl++;
delete(zahlen);
zahlen = neue_zahl;
}
}
};
// Liste ausgeben
ostream& operator<<(ostream& Stream, const Liste &list)
{
cout << '[';
for(int i=0; i < list.anzahl; i++){
cout << list.zahlen[i];
if (i > (list.anzahl-2) {
cout << ',';
}
}
cout << ']' << endl;
return Stream;
}
//Operator Liste einlesen
istream& operator>>(istream&, tBruch&){
cout<<
}
int main(){
Liste liste; //Konstruktor wird aufgerufen
int zahl;
cout <<"enter the numbers" << endl;
do{
cin >> zahl;
liste.neue_zahlen(zahl);
}while(zahl);
cout<<liste;
}
Danke, hat es mit Freund funktioniert und es funktioniert alles jetzt. Ich werde es auch andersherum versuchen :)) – specbk