Do I always have to specify absolute path for objects instantiated from std::fstream class? In other words, is there a way to specify just relative path to them
You can specify a path relative to current directory. On Windows you may call GetCurrentDirectory to retrieve current directory or call SetCurrentDirectory to set current directory. There are also some CRT functions available.