Quel constructeur pouvez-vous utiliser pour instancier un fstream si vous le déclarez en tant que membre d'une classe?Comment instancier un fstream si vous le déclarez en tant que membre d'une 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 = ???
}
Pouvez-vous développer ce nouveau C++ 2011 fonctionnalité vous permettant d'utiliser « initialisations sont autorisés à l'intérieur du corps d'une classe. »? J'étais sous l'impression distincte que tous les membres sont facilement initialisés lorsque le corps du constructeur est entré ... –
@ DietmarKühl- Bien sûr! En C++ 11, vous pouvez affecter des valeurs par défaut à chacun des champs d'une classe. Si elles ne sont pas remplacées par quelque chose de spécifique dans une liste d'initialisation, elles sont initialisées comme si elles étaient initialisées dans une liste d'initialisation. – templatetypedef
Pas étonnant que C++ soit devenu si abstrait! – likejiujitsu