Masz kilka podejść. Możesz zwrócić obiekt ifstream(chyba tylko c++11), wskaźnik na taki obiekt, lub przekazać do fukcji referencje (lub wskaźnik) na ten obiekt.
ifstream *OtworzPlik(string nazwaPliku) {
ifstream *plik = new ifstream();
plik->open(nazwaPliku.c_str(), ios::in);
if (!plik->good()) {
cout << " Nie znaleziono pliku" << endl;
delete plik;
return NULL;
}
else {
cout << "Znaleziono plik" << endl;
return plik;
}
}
bool OtworzPlik(string nazwaPliku, ifstream &plik) {
plik.open(nazwaPliku.c_str(), ios::in);
if (!plik.good()) {
cout << " Nie znaleziono pliku" << endl;
return false;
}
else {
cout << "Znaleziono plik" << endl;
return true;
}
}