I have an existing class which interacts which can open, read or write to a file. I need to retrieve a file modification for that purpose I have to add a new method 

Suppose this following is my class definition where I want to add a new method. 

```
class IO_file
{
 std::string m_file_name;
 public:
 IO();
 IO(std::string file_name);

+ time_t get_mtime(file_name);
+       OR
+ time_t get_mtime();
};

```

I have two options - 

1. Create an empty object and then pass the file\_name in the method argument for which I wish to retrieve the file modification time.
2. Pass the file name at the object construction and simply call the member function which will operate on the member variable.

Both options will serve the purpose. I also believe that second approach is better than first one. But what I don't understand is **How**? 
Is first approach bad design since it doesn't make use of a member variable? 
Which principle of Object oriented design does it violate?
If a member function does not use the member variable, should that member function should always be made static?