Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 19:06

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Highscore.de Aufgabe Konstruktoren und Destruktoren Problem

Discussion on Highscore.de Aufgabe Konstruktoren und Destruktoren Problem within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 5
Join Date: Apr 2007
Posts: 210
Received Thanks: 10
Highscore.de Aufgabe Konstruktoren und Destruktoren Problem

Hey!
Ich versuche Fortschritte im Programmieren zu machen doc man stoßt ja immer wieder auf Probleme

Folgendes.

Ich versuche die Aufgabe ganz unten auf der Seite() zu lösen, doch schaffe die Zweite Aufgabe nicht.

Mein momentaner Code:
Die C++ Datei

flugzeug.h Header

flughafen.h Header

Ist nicht gerade der beste Code, aber ich probiere halt schon seit einigen Stunden nur für diesen kleinen pip.

Code:
flugzeug::flugzeug(string fluggesellschaft)
    :Fluggesellschaft (fluggesellschaft)
{
    
}
Was macht die zweite Zeile?Fand kein weg herauszufinden wie man sowas nennt.

Das Hauptproblem liegt in der Methode starten(); , denn ich weiß nicht wie ich mit nem array in solch einem fall arbeiten soll,ich habe es mit vektoren versucht,aber ist fehlgeschlagen,da ich anscheind nicht genug Ahnung habe. Ich habe ja ein Array vom typ Flugzeug, kann ihm aber kein wert zuweisen <.<
Könnt ihr mir LösungsANSÄTZE geben, die mir eventuell weiterhelfen könnten?
Vielen Dank im Vorraus
Gruß Blackrune

[edit]: und ich weiß nicht ob starten() und landen() in die Flughafen oder flugzeug header muss, da es ja eigendlich zugriff auf Fluggesellschaft haben muss,oder nicht? :S
BlackRune is offline  
Old 09/17/2010, 21:00   #2
 
Madd Eye's Avatar
 
elite*gold: 260
Join Date: Apr 2010
Posts: 229
Received Thanks: 142
Quote:
Originally Posted by BlackRune View Post
Hey!

Code:
flugzeug::flugzeug(string fluggesellschaft)
    :Fluggesellschaft (fluggesellschaft)
{
    
}
Was macht die zweite Zeile?Fand kein weg herauszufinden wie man sowas nennt.
Die Zweite Zeile ist die sogenannte Vererbung

Das Hauptproblem:
Denk anstoß
Code:
sizeof(fluggesellschaft);
^^

und der void starten kann man in beide schreiben aber für mich gäbe im Flugzeug header mehr sinn. Allerdings muss dann das #include "Flughafen.h" aus der main datei rausnehmen und es in flugzeug.h reinschreiben
Madd Eye is offline  
Old 09/17/2010, 21:51   #3


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Quote:
Originally Posted by Madd Eye View Post
Die Zweite Zeile ist die sogenannte Vererbung

Das Hauptproblem:
Denk anstoß
Code:
sizeof(fluggesellschaft);
^^

und der void starten kann man in beide schreiben aber für mich gäbe im Flugzeug header mehr sinn. Allerdings muss dann das #include "Flughafen.h" aus der main datei rausnehmen und es in flugzeug.h reinschreiben
Bitte einfach still sein, wenn du keine Ahnung hast.

Das Ganze hat 0 mit Vererbung zutun, das ist die Initialisierungsliste.

Der Konstrukter initialisiert ja, wie du bereits wissen solltest, die nötigen Member des Objekts, das ginge zb. so:

Code:
class X
{
int x;
X(int i);

};

X::X(int i)
{
x = i;
}

Mit der Initialisierungsliste würde es so aussehen:

Code:
class X
{

int x;
X(int i);

};

X::X(int i)
: x(i)
{

}
Das ist nichts anderes, als eine kürzere (und meist auch übersichtlichere) Schreibweise für das Initialisieren der nötigen Member.
Es kann zusätzlich auch Geschwindigkeitsvorteile bieten, zb. wenn du als Member ein anderes Objekt hast, wie in einem Beispiel std::string.

Würde man es wie im ersten Code machen, wäre es viel langsamer, weil viel mehr Zwischenfunktionen aufgerufen werden müssen, als im zweiten.

Hier kannst du nochmal eine etwas genauere (dafür auch anspruchsvollere) Erklärung für die Geschwindigkeitsvorteile finden:



Recht weit unten unter "C++ Konstruktoren und Destruktoren"

Quote:
Das Hauptproblem liegt in der Methode starten(); , denn ich weiß nicht wie ich mit nem array in solch einem fall arbeiten soll,ich habe es mit vektoren versucht,aber ist fehlgeschlagen,da ich anscheind nicht genug Ahnung habe. Ich habe ja ein Array vom typ Flugzeug, kann ihm aber kein wert zuweisen <.<
Könnt ihr mir LösungsANSÄTZE geben, die mir eventuell weiterhelfen könnten?
Vielen Dank im Vorraus
Gruß Blackrune
Einem Array kannst du natürlich auch keinen Wert zuweisen, sondern nur seinen einzelnen Elementen, auf die du per Index ([0], [1], ...) zugreifst.
MrSm!th is offline  
Old 09/18/2010, 00:12   #4
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Du hast die Grundlagen noch überhaupt nicht verstanden und die Aufgabenstellung entweder nicht verstanden oder nicht gründlich gelesen.
Fang noch einmal ganz von vorne an, du hast noch nicht verstanden wie Operatoren funktionieren und eine ganze reihe von anderen Grundlagen scheinen dir auch zu fehlen, sonst hättest du anhand der Aufgabenstellung erkannt, dass die Flughafenklasse ein Array vom Typ Flugzeug enthalten soll und die landen() bzw starten() Memberfunktionen sollten in der Flughafenklasse liegen, da der Flughafen Zugriff auf Private Member der Flugzeugklasse braucht, bietet es sich an Flughafen als friend class zu deklarieren.
Bot_interesierter is offline  
Old 09/19/2010, 09:39   #5
 
elite*gold: 5
Join Date: Apr 2007
Posts: 210
Received Thanks: 10
Danke für eure Hilfe! Ich habe diese Probleme erstmal gelöst,allerdings habe ich noch eine Frage.

Ich erstelle ein pointer-to-object und will mit dem objekt auf eine Methode der anderen Klasse zugreifen,geht das?
z.B. :
Code:
Airforce = new flugzeug();
Airforce->landen("Airforce");
landen() ist aber in der Klasse Flughafen deklariert und Airforce gehört halt zum typ flugzeug.
BlackRune is offline  
Old 09/19/2010, 15:19   #6


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
nein natürlich nicht, da es ja kein Member von flugzeug ist oder ist flugzeug von flughafen in irgendeiner Form abgeleitet?
MrSm!th is offline  
Reply


Similar Threads Similar Threads
Dead Frontier Highscore
10/07/2011 - General Coding - 3 Replies
-
[HOT] [LVL 62 .COM][50 HIGHSCORE]
08/11/2010 - Metin2 Trading - 5 Replies
Screens : http://img339.imageshack.us/img339/5282/080212240 9.jpg http://img836.imageshack.us/img836/2591/080212242 2.jpg Zahlungsmethoden ? PSC
PING LATENZ HIGHSCORE
01/22/2010 - CrossFire - 18 Replies
Da ich im Moment nur noch Probleme hab mit meinem Ping, das er rauf und runter geht während dem Spiel. "Was absolut abfuckt" Hab ich mir gedacht machen ich mal ein Thread mit den besten Ping Highscore. also mein Ping lage grade eben mal bei 4525, was bis jetzt meine höchste Latenz war. Wie sieht es bei euch aus?
[SCRIPT]Highscore
10/21/2009 - Metin2 PServer Guides & Strategies - 23 Replies
gelöscht xD
Highscore - C++ Tutorial
04/07/2008 - C/C++ - 0 Replies
Hallo bin letztens durch Google auf diese intressante Seite gestoßen: Highscore - Programmieren lernen Sie finden auf dieser Website hochwertige Online-Bücher, die Sie in der Aus- und Weiterbildung zum Software-Entwickler unterstützen. Alle Online-Bücher sind unter einer Creative Commons-Lizenz veröffentlicht und können von Ihnen kopiert und weitergegeben werden. Ich habe mir mal ein paar Kapitel des C++ Tutorials dort angesehen. Das sieht doch sehr gut aus! Man kann von Anfang an...



All times are GMT +2. The time now is 19:06.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.