C++ does not have a concept of interface. There are concrete classes and abstract classes, nothing more. Abstract classes are allowed to have constructors, data members and everything else. The only thing needed to mark a class abstract is a single pure virtual member function.
Some people use the word "interface" to denote an abstract class without any data members or non-pure-virtual member functions. Other people use slightly different definitions. The exact definition has no significance whatsoever as far as the language is concerned. You can have data members and define a constructor and still call your class an interface, nobody's going to issue you a citation for that. Or you can just avoid the term altogether.