sirve - seekg c++ español
"Ofstream" como argumento de función (3)
Por supuesto que hay Sólo tiene que usar la referencia. Como eso:
void foo (std::ofstream& dumFile) {}
De lo contrario, se invocará el constructor de copia, pero no hay tal definido para la clase ofstream
.
¿Hay una manera de pasar la secuencia de salida como argumento como
void foo (std::ofstream dumFile) {}
Intenté eso pero me dio
error : class "std::basic_ofstream<char, std::char_traits<char>>" has no suitable copy constructor
Si está utilizando un compilador conforme a C ++ 11 y una biblioteca estándar, debería estar bien para usar
void foo(std::ofstream dumFile) {}
Siempre que se llame con un rvalue. (Tales llamadas se verán como foo(std::ofstream("dummy.txt"))
, o foo(std::move(someFileStream))
).
De lo contrario, cambie el parámetro que se pasará por referencia y evite la necesidad de copiar / mover el argumento:
void foo(std::ofstream& dumFile) {}
ostream
pasar una referencia al objeto ostream
ya que no tiene un constructor de copia:
void foo (std::ostream& dumFile) {}