misterx
26-02-2004, 11:59
più che altro ora mi interessa l'ereditarietà :D
siccome non ho ub libro sotto mano per comprenderne la sintassi, mi spiegate cosa significa:
Counter():value(0){};
penso che definisca un costruttore ma
:value(0){};
cos'è ?
• La scritta : public NomeSuperclasse dopo il nome della classe, indica che questa classe deriva dall'altra.
• Invece di usare come in Java super() per richiamare il costruttore della superclasse, si scrive direttamente NomeSuperclasse()
• Invece i metodi della superclasse si richiamano usando l'operatore di visibilita' :: cioe' NomeSuperclasse::nomeMetodo().
class Counter {
public:
Counter():value(0){};
Counter(int n):value(n){};
int getValue() {
return value;
}
void increment() {
value++;
}
private:
int value;
};
class BigCounter : public Counter{
public:
BigCounter(int n):Counter(n){
}
void increment(){
Counter::increment();
Counter::increment();
}
};
siccome non ho ub libro sotto mano per comprenderne la sintassi, mi spiegate cosa significa:
Counter():value(0){};
penso che definisca un costruttore ma
:value(0){};
cos'è ?
• La scritta : public NomeSuperclasse dopo il nome della classe, indica che questa classe deriva dall'altra.
• Invece di usare come in Java super() per richiamare il costruttore della superclasse, si scrive direttamente NomeSuperclasse()
• Invece i metodi della superclasse si richiamano usando l'operatore di visibilita' :: cioe' NomeSuperclasse::nomeMetodo().
class Counter {
public:
Counter():value(0){};
Counter(int n):value(n){};
int getValue() {
return value;
}
void increment() {
value++;
}
private:
int value;
};
class BigCounter : public Counter{
public:
BigCounter(int n):Counter(n){
}
void increment(){
Counter::increment();
Counter::increment();
}
};