PDA

Visualizza la versione completa : [C++] Composizione di oggetti


UltraBeginner
19-02-2007, 15:48
Ciao a tutti,

sto affrontando la composizioe in C++ (oggetti che diventano membri di altre classi),
ma sono incorso in un errore.



#include <cmath>
#include <cstdlib>
#include <iostream>

using namespace std;

class Latticini
{
public:
Latticini(int = 2,int =2);
int Calorie(int& grammi);
private:
int const Kal;
int calorie;

};

class Mangiare
{
public:
Mangiare(long int=1,Latticini);
int CalcolaCaloriePranzo();


private:
int quantita;
long int TotaleCalorie;
Latticini Latte;

};

int main (void)
{
Latticini Milk;
Mangiare Pranzo(1,Milk);


cout<<Pranzo.CalcolaCaloriePranzo();
system("Pause");
return 0;
}

Latticini::Latticini(int cal,int cost)
: Kal(cost)

{
calorie=cal;
}

int Latticini::Calorie(int& grammi)
{
grammi=grammi*2;
calorie=grammi*Kal;
return calorie;
}

Mangiare::Mangiare(long int Tot,Latticini Lat)
:Latte(Lat)
{
TotaleCalorie=Tot;
}

int Mangiare::CalcolaCaloriePranzo()
{

TotaleCalorie=Latte.Calorie(quantita);
return TotaleCalorie;
}


In particolare l'errore e questo:
C:\Dev-Cpp\Progetti\Spazzatura\EserciziC++\ProveCapitolo1 0.cpp In constructor `Mangiare::Mangiare(long int, Latticini)':
58 C:\Dev-Cpp\Progetti\Spazzatura\EserciziC++\ProveCapitolo1 0.cpp default argument missing for parameter 2 of `Mangiare::Mangiare(long int, Latticini)'

Se qualcuno mi chiarisce le idee mi fa un favore...

Ciau :ciauz: :ciauz: :ciauz:

andbin
19-02-2007, 16:00
L'argomento (o gli argomenti, se pił di uno) che hanno un valore di default, devono essere gli ultimi nella lista dei parametri.

Quindi ad esempio:

void pippo (int a, int b=10)

void pluto (int a, int b=20, int c=30)

ma non

void paperino (int a=10, int b)

Questo vale in generale (anche per altri linguaggi che accettano valori di default per i parametri).

Loading