Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hi, hab folgenden code:


//############# header file #############
class bruch
{
protected:
int zaehler;
int nenner;
public:
bruch();
void bruch_eingeben (void);
void bruch_ausgeben (void);
~bruch();
};

bruch::bruch(void)
{
zaehler = 0;
nenner = 1;
}

void bruch::bruch_eingeben (void)
{
cout << "geben sie den zaehler ein:";
cin >> zaehler;

cout << "geben sie den nenner ein:";
cin >> nenner;
}

void bruch::bruch_ausgeben (void)
{
cout << "der von ihnen eingegebene bruch lautet: " << zaehler << "/" << nenner << endl << endl;
}

bruch::~bruch(void)
{
}

//########### hauptprogramm ############
#include "Brüche.h"

void main (void)
{
cout << "**** Brueche eingeben *****" << endl;

bruch mein_bruch;
mein_bruch.bruch_eingeben();
mein_bruch.bruch_ausgeben();

bruch mein_bruch2(1,4);
mein_bruch2.bruch_ausgeben();

cout << "******* Ende *******" << endl;

getch();

}
[/PHP]

wie bekomm ich das hin, dass ich [color=red]mein_bruch2[/color] mit 1 und 4 initialisieren kann?

dazu brauch ich einen zusätzlichen konstruktor,od?

kann mir dass mal einer zeigen, habs zwar probiert, hat aber nicht funktioniert.

meine idee war in der klasse:

[PHP]bruch(int,int);

und bei den methodendefinitionen dann:

bruch::bruch(int,int){};

da sind dannn aber ziemlich komische werte bei rausgekommen.

danke korea1

hi,

dass mit dem überladen hab ich noch nie gemacht, soll ich jetzt aber. hm... ??

also ich hab ja siehe code oben mit bruch mein_bruch2(1,4); ein neues obj erstellt. dieses sollte als wert den bruch 1/4 haben und auch ausgeben.

bekommen habe ich aber folgendes: -858993460/-858993460

je nach initialisierung müsste sich das programm doch den richtigen konstruktor raussuchen, oder?

also bruch neuer_bruch; => gibt mir demnach ja 0/1 s. 1. konstruktor bruch();

burch neuer_bruch2(1,4) => sollte dann doch 1/4 ergeben

oder hab ich da was falsch verstanden?

korea1

Es reicht nicht, wenn du (int, int) als Parameter nimmst, du musst auch einen Variablennamen mitgeben.

Beispiel:

in der *.h:



class KomplexZahl

{

    public:

        KomplexZahl();

        KomplexZahl(int zahl);  // expliziter Konstruktor

    ...

}


in der *.cpp:


KomplexZahl::KomplexZahl()

{

    ...

}


KomplexZahl::KomplexZahl(int zahl)

{

    ergebnis = zahl;

}


danke korea1

Original geschrieben von roaxius


KomplexZahl::KomplexZahl(int zahl)
{
ergebnis = zahl;
}
[/code] [/b]Initialisierungslisten sind besser:
[CODE]KomplexZahl::KomplexZahl(int zahl) :
ergebnis( zahl )
{
}

Achtung, die Ausführungsreihenfolge der Initialisierungen hängt von der Reihenfolge in der Klassendeklaration ab, nicht von der Reihenfolge in der Initialisierungsliste.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.