Я хочу сделать обертку Filer
класс для работы с библиотекой fstream
.Как передать класс/объект через конструктор в C++
Таким образом, я хочу, чтобы передать экземпляр fstream
класса через конструктор моего собственного класса Filer, который привел к этому коду:
Filer::Filer(fstream fileObject)
{
fileObject this->fileObj;
};
Хотя, когда я скомпилировать его, выдается ошибка, что:
1>Filer.cpp(10): error C2143: syntax error : missing ';' before 'this'
Хотя, когда я делаю это:
Filer::Filer(fstream fileObject)
{
this->fileObj = fileObject;
};
Он бросает эти ошибки W он жалуется, что fstream не может быть назначен таким образом;
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'std::fstream' (or there is no acceptable conversion)
Как я должен затем сделать мой конструктор принимает объект типа fstream
?
Ну, могу я спросить вас, когда в файле заголовка мы указываем класс, какой тип должен быть назначен 'fileObj'? Я имею в виду, как мы должны объявлять 'fileObj'? 'string fileObj;' на самом деле не работает –
@MostafaTalebi, конечно, он не работает, 'fstream' не является' string', а 'string' не является' fstream'. Объявите 'fileObj' как ссылку на' fstream' - 'std :: fstream & fileObj'. –
Ooo Я сделал это перед вашим комментарием. Большое спасибо человеку –