konkrete Inhaltsfragen

Moderator: Moderatoren

midrantos
Beiträge: 170
Registriert: Sa 22. Mär 2008, 13:51

Re: konkrete Inhaltsfragen

Beitrag von midrantos » Fr 31. Okt 2008, 00:04

testuser hat geschrieben:Falls du weitere Fragen hast, versuch die doch in der Newsgroup rwth.elektrotechnik.ai2 zu stellen. In dieser Gruppe werden die Fragen auch von den Praktikumsbetreuern kompetent beantwortet. Auf die Gruppe kann z.B. aus dem service-portal zugegriffen werden. http://service.eecs.rwth-aachen.de/main/pi2
Also ich muss mal ganz ehrlich feststellen, dass du mir so langsam auf den Wecker fällst. Ich glaube, dass mittlerweile jeder hier geschätzte 10mal gelesen hat, dass du die Newsgroup befürwortest, und dass andauernde Darauf-Verweisen von dir nervt einfach. Es gibt sicher einige Vorteile hier am Forum (Übersichtlichkeit, Benutzerprofile, Downloads, Formeln) und andere an der Newsgroup (Institute), aber diese Diskussion steht auf einem anderen Blatt. Ich empfehle einfach, beides zu lesen. Wenn du aber so von dieser Newsgroup überzeugt bist, verstehe ich absolut nicht, wieso du dann immer noch hier mitliest, dazu versuchst und auch noch Leute abzuwerben.

Ich setze hiermit jetzt voraus, dass jeder deine Hinweise bezüglich der Newsgroup gelesen und verstanden hat. Du brauchst also in Zukunft wahlweise nicht mehr darauf hinzuweisen oder hier einfach nicht mehr weiter mitzulesen.

msg Florian

Benutzeravatar
[MD]
Beiträge: 389
Registriert: Mi 16. Apr 2008, 14:26

Re: konkrete Inhaltsfragen

Beitrag von [MD] » Fr 31. Okt 2008, 00:31

So und direkt die nächste Frage:

In meiner Fahrzeug.h steht:

Code: Alles auswählen

public:
...
Fahrzeug(string sName, double dMaxGeschwindigkeit);
...
virtual double dTanken(double dMenge = 0.0);

...

protected:
    string p_sName;
    double p_dMaxGeschwindigkeit, p_dGesamtStrecke, p_dGesamtZeit, p_dZeit;
    void vInitialisierung();
In der Fahrzeug.cpp:

Code: Alles auswählen

...

Fahrzeug::Fahrzeug(string sName, double dMaxGeschwindigkeit)
{
    vInitialisierung();
    p_sName = sName;
    p_dMaxGeschwindigkeit = dMaxGeschwindigkeit;
}

...

double dTanken(double dTanken)
{
    return(0.0);
}
In meiner PKW.h:

Code: Alles auswählen

#pragma once
#include "fahrzeug.h"

class PKW :
    public Fahrzeug
{
public:
    PKW(void);
    PKW(string sName, double dMaxGeschwindigkeit, double dVerbrauch, double dTankvolumen);
    double dVerbrauch();
    double dTanken(double dMenge);
    double dGeschwindigkeit();

private:
    double p_dVerbrauch, p_dTankinhalt, p_dTankvolumen;

public:
    ~PKW(void);
};
Und in meiner PKW.cpp:

Code: Alles auswählen

#include "PKW.h"

using namespace std;

PKW::PKW(string sName, double dMaxGeschwindigkeit, double dVerbrauch, double dTankvolumen):Fahrzeug(sName, dMaxGeschwindigkeit)
{
    vInitialisierung();
    p_dVerbrauch = dVerbrauch;
    p_dTankvolumen = dTankvolumen;
    p_dTankinhalt = (p_dTankvolumen / 2);
}

double PKW::dTanken(double dTanken)
{
    if ((dTanken > 0) && (dTanken < (p_dTankvolumen - p_dTankinhalt))) // ++++++++++
    {
        p_dTankinhalt += dTanken;
        return p_dTankinhalt;
    }
    else
    {
        p_dTankinhalt = p_dTankvolumen;
        return p_dTankinhalt;
    }
} 
Und ich bekomme immer folgenden Fehler:

Code: Alles auswählen

Fahrzeug.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual double __thiscall Fahrzeug::dTanken(double)" (?dTanken@Fahrzeug@@UAENN@Z)".
Ich verstehe nicht ganz, warum der meint die Funktion nicht zu finden...
Ciao [MD]

K-Bal
Beiträge: 147
Registriert: Di 24. Jun 2008, 18:46

Re: konkrete Inhaltsfragen

Beitrag von K-Bal » Fr 31. Okt 2008, 00:43

Du hast in PKW.h "dMenge" als Argument von dTanken() und in der PKW.cpp "dTanken".

Christian Bredtmann
Administrator
Beiträge: 237
Registriert: Mo 10. Mär 2008, 04:09
Wohnort: Aachen
Kontaktdaten:

Re: konkrete Inhaltsfragen

Beitrag von Christian Bredtmann » Fr 31. Okt 2008, 00:51

Hi.

Fahrzeug.cpp: Hier fehlt die Klassenzugehörigkeit der Funktion dTanken():

Code: Alles auswählen

double dTanken(double dTanken)
->

Code: Alles auswählen

double Fahrzeug::dTanken(double dTanken)
K-Bal hat geschrieben:Du hast in PKW.h "dMenge" als Argument von dTanken() und in der PKW.cpp "dTanken".
Das stört den Linker meines Wissens nicht. Man kann in der Deklaration sogar gar keine Namen angeben.


Offtopic:
midrantos hat geschrieben:Also ich muss mal ganz ehrlich feststellen, dass du (testuser) mir so langsam auf den Wecker fällst. Ich glaube, dass mittlerweile jeder hier geschätzte 10mal gelesen hat, dass du die Newsgroup befürwortest, und dass andauernde Darauf-Verweisen von dir nervt einfach.

[...]
Dem kann ich nur zustimmen. Das nervt echt ein bisschen, wenn du das unter jeden Post schreibst.


Gruß Christian

K-Bal
Beiträge: 147
Registriert: Di 24. Jun 2008, 18:46

Re: konkrete Inhaltsfragen

Beitrag von K-Bal » Fr 31. Okt 2008, 01:15

Ja, hast Recht, das wird den wohl nicht stören ;) aber sieht trotzdem unschön aus :D

Benutzeravatar
[MD]
Beiträge: 389
Registriert: Mi 16. Apr 2008, 14:26

Re: konkrete Inhaltsfragen

Beitrag von [MD] » Fr 31. Okt 2008, 10:20

Alles klar, danke schön. Jetzt funktioniert es.
Ciao [MD]

maxxican
Beiträge: 2
Registriert: Sa 28. Jun 2008, 15:16

Re: konkrete Inhaltsfragen

Beitrag von maxxican » Fr 31. Okt 2008, 19:40

Tag zusammen!

Ich habe ein Problem bei Aufgabenblock 2 Aufgabe 2.1 (Exeptions)

Code: Alles auswählen

double FzgParken::dStrecke(Fahrzeug *ptFahrzeug, const double& dZeit)
{
	if(p_dStartzeitpunkt <= dGlobaleZeit)
	{
		Losfahren los(p_ptWeg, ptFahrzeug);
		throw los;
	}
	return 0.0;
}
Wenn ich mein Programm ausführe crasht es beim throw. Ich hab keinen Schimmer, was das Problem ist und werde auch aus den Informationen des Debuggers nicht schlau.

Zusatzinfo:
- die Instanz "los" ist in Ordnung
- der Debugger springt in die iostream-Datei zur Stelle

Code: Alles auswählen

// For construction of filebuffers for cout, cin, cerr, clog et. al.
  static ios_base::Init __ioinit;
- ich habe den Copykonstruktor verboten
- 7 __cxa_allocate_exception() C:\MinGW\include\c++\3.4.5\iostream:77 0x00408b63 ist der Name des Thread, bei dem ich rausfliege

Danke schonmal.

maxxican
Beiträge: 2
Registriert: Sa 28. Jun 2008, 15:16

Re: konkrete Inhaltsfragen

Beitrag von maxxican » Sa 1. Nov 2008, 23:43

Ah, okay. Hatte das "public" bei zwei Klassenableitungen vergessen, das war's auch schon.

Chris087
Beiträge: 296
Registriert: Mi 21. Mai 2008, 13:00

Re: konkrete Inhaltsfragen

Beitrag von Chris087 » Mo 3. Nov 2008, 22:54

Ich hab eine kleine Frage zu Aufgabenblock 1, Aufgabe 2.4

Und zwar initialisiere ich zunächst den Vektor vom Typ Fahrzeug*:

vector<Fahrzeug*> feld(AnzFahr+AnzPKW); //Erzeugen des Vektors für alle Fahrzeuge

Später möchte ich ja die Autos nach 2,5 Stunden volltanken. Das habe ich so in einer Schleife versucht:

feld[k]->dTanken()

Problem ist, dass er dabei die dTanken von "Fahrzeug" und nicht von "PKW" aufruft! Dann hab ich das hier versucht, gab aber nen Fehler:

feld[k]->PKW::dTanken()

Wie kann ich dort die dTanken von "PKW" aufrufen?

Danke schonmal!

K-Bal
Beiträge: 147
Registriert: Di 24. Jun 2008, 18:46

Re: konkrete Inhaltsfragen

Beitrag von K-Bal » Mo 3. Nov 2008, 23:18

dTanken() muss in Fahrzeug als virtual deklariert werden.

Antworten

Zurück zu „Praktikum Informatik II“