Ciao a tutti,
sto studiando la dichiarazione di classe anticipata ( forward ) e ho qualche problema.

Ho capito che funziona come le dichiarazione di classe ma con la differenza che permette le dipendenze circolari.

Tuttavia non sono riuscito a creare un esempio funzionante, potete aiutarmi?

Per quale motivo e in quale contesto puo essere utile utlizzare le forward .

Grazie
Lele


codice:
#include "derivata.h"

int main(int argc, char *argv[])
{

}
codice:
// derivata.cpp
// in uno di questi posti mi aspettavo di poter accere algli elementi di base.h ma nulla

#include "derivata.h"

derivata::derivata()
{

}

void derivata::derivataTre (){
    
}

void derivata::derivataUno(base *uno){
    
}

void derivata::derivataDue(base &due){

}
codice:
// Derivata.h
#ifndef DERIVATA_H
#define DERIVATA_H
//#include <base.h>

class base;

//class derivata : public base

class derivata
{
public:
    base *uno;
    derivata();

    void derivataUno(base *uno);
    void derivataDue(base &due);
    void derivataTre();
};

#endif // DERIVATA_H
codice:
// base.h
#ifndef BASE_H
#define BASE_H
#include <iostream>
using std::cout;

class base
{
public:
    base();
    void baseUno();
};

#endif // BASE_H
codice:
//Base.cpp
#include "base.h"

base::base()
{
}

void base::baseUno(){
    cout << "baseUno\n";
}