ifstream * file(path); //error: cannot convert ‘char*’ to ‘std::ifstream*’ in initialization
Проблема в том, что конструкция объекта не подходит. Вы, вероятно, пытаетесь сделать следующее (или нечто подобное), действительно передав массив char в конструктор объекта ifstream:
ifstream file(path);
Однако введение звездочки здесь меняет весь смысл. Вы создаете указатель на объект ifstream
, но не сам объект ifstream
. А для создания указателя вам понадобится другой указатель на объект ifstream (то есть указатель того же типа).
ifstream file(path);
ifstream * ptr( &path );
Это не то, что вы намеревались сделать, в любом случае, вы, вероятно, хотели создать ifstream
объект, на который ссылается указатель:
ifstream * file = new ifstream( path );
//... more things...
file->close();
Но помните, что объект должен освобождаться, когда он больше не нужен. Объекты, на которые ссылаются указатели, не освобождаются автоматически, как это происходит с обычными (объекты в стеке) объектами.
ifstream * file = new ifstream( path );
//... more things...
file->close();
delete file;
Надеюсь, это поможет.