Frage zur Ausgabe
-
hallo Leute,
ich habe eine Aufgabe,die ich zum Teil gelöst habe,aber bei der Aufgabenstellung es muss nur ausgeben wenn es sich nicht um ein leeres Objekt im Array handlet . ich füge das Programm zu .im voraus bedanke ich mich für eure Hilfe .
#include<iostream>
using namespace std;class cFunkMast{
private://Eigenschaften der Klasse cFunkMast
int Anzahl_Antennen;
int Reichweite;
double Hoehe;
double geopos;
public://Konstruktorn der Kalsse cFunkMast
cFunkMast();//StandarKonstruktor Deklaration
cFunkMast(int an_ant,int rw,double h,double gp);// Deklaration Konstruktor mit Parametern
/* Funkmasten(int an_ant=0,int rw=0,double h=0.0,double gp=0.0){
Anzahl_Antennen=an_ant;
Reichweite=rw;
Hoehe=h;
geopos=gp;
}*/
~cFunkMast();
//Metoden der Klasse cFunkMast
void print();
};
//Definition der Konstruktoren
cFunkMast::cFunkMast(){
Anzahl_Antennen=0;
Reichweite=0;
Hoehe=0.0;
geopos=0.0;
}
cFunkMast::cFunkMast(int an_ant,int rw,double h,double gp){
Anzahl_Antennen=an_ant;
Reichweite=rw;
Hoehe=h;
geopos=gp;
}
cFunkMast::~cFunkMast(){
cout<<"Objekt wird zerstoert:"<<endl;
}
void cFunkMast::print(){//Methode Der klasse cFunkMast die für die Ausgaeb zuständig ist
cout<<"|\t"<<Anzahl_Antennen<<"\t|\t"<< Reichweite<<"\t|\t"<<Hoehe<<"\t|\t"<<geopos<<"\t|"<<endl;
}int main(){
//Instanzierung und InitilaisierungsListe der 8 ersten Objekten
cFunkMast objekt[100]={ cFunkMast(1,30,7.56,38.76),
cFunkMast(3,23,7.56,38.76),
cFunkMast(6,23,5.54,33.72),
cFunkMast(8,30,7.87,32.76),
cFunkMast(9,30,2.96,33.55),
cFunkMast(5,30,23.76,37.436),
cFunkMast(11,30,10.56,38.46),
cFunkMast(21,30,9.56,38.06),
};
cout<<"\t*** -----\t\tFunkmasten-Register\t\t----- ***\t"<<endl;
cout<<"| Antennenzahl | Leistung | Hoehe | Position |"<<endl;for(int i=0;i<100;i++){/*Hier muss was implementiert werden um die Ausgabe der befüllten Elmente auszugeben.d.h.ohne die Initialisierung des Konstruktors auszugeben*/
objekt[i].print();
}
return 0;
}
-
Ich würde ja statt eines Arrays einen std::vector verwenden - der weiß wenigstens, wieviele Elemente er hat.
PS: cpp-Tags sind hilfreich für dich und die Leute, denen du hier deinen Code vorsetzt

-
Edit:
Hab das ganze mal auf Vordermann gebracht. Da war so einiges Verbesserungswürdig :).#include <iostream> #include <vector> class cFunkMast { public: cFunkMast() : m_numAntennas(0), m_range(0), m_height(0), m_geopos(0) {} cFunkMast(int an_ant,int rw,double h,double gp) : m_numAntennas(an_ant), m_range(rw), m_height(h), m_geopos(gp) {} ~cFunkMast() {} void print() { std::cout << "|\t" << m_numAntennas << "\t|\t" << m_range << "\t|\t" << m_height << "\t|\t" << m_geopos << std::endl; } private: int m_numAntennas; int m_range; double m_height; double m_geopos; }; int main() { std::vector<cFunkMast> vec; vec.push_back(cFunkMast(1,30,7.56,38.76)); vec.push_back(cFunkMast(3,23,7.56,38.76)); // .... std::cout<<"\t*** -----\t\tFunkmasten-Register\t\t----- ***\t" << std::endl; std::cout<<"| Antennenzahl | Leistung | Hoehe | Position |" << std::endl; for ( int i=0;i<vec.size();i++) { vec[i].print(); } }