Quale costruttore è possibile utilizzare per creare un'istanza di un flusso se lo si dichiara come membro di una classe?Come istanziare un fstream se lo dichiari come membro di una classe?
#include <fstream>
class Foo {
Foo();
// not allowed
std::fstream myFile("\\temp\\foo.txt", fstream::in | fstream::out | fstream::trunc);
// allowed
std::fstream myFile;
}
// constructor
Foo::Foo() {
// what form of myFile("\\temp\\foo.txt", fstream::in | fstream::out | fstream::trunc) can I use here?
myFile = ???
}
Puoi espandere su questo nuovo C++ 2011 caratteristica che consente di utilizzare "inizializzazioni sono ammessi all'interno del corpo di una classe."? Avevo la netta impressione che tutti i membri siano prontamente inizializzati quando viene inserito il corpo del costruttore ... –
@ DietmarKühl- Sure! In C++ 11, è possibile assegnare valori predefiniti a ciascuno dei campi di una classe. Se non vengono sovrascritti da qualcosa di specifico in un elenco di inizializzazione, vengono inizializzati come se fossero stati inizializzati in un elenco di inizializzazione. – templatetypedef
Non c'è da stupirsi che il C++ sia diventato così astruso! – likejiujitsu