I was wanting to know if it is considered bad practice to declare a structure in my class? a snippet of the class definition below,

Qt Code:
  1. #ifndef READHEADER_H
  2. #define READHEADER_H
  3.  
  4. #include <QObject>
  5. ...
  6.  
  7. struct headerInfo{
  8. int numberOfSamples;
  9. int numberOfLines;
  10. int numberOfBands;
  11. int dataType;
  12. QString fileName;
  13. QVector<double> wavelengths;
  14. };
  15.  
  16. class readHeader : public QObject
  17. {
  18. Q_OBJECT
  19. public:
  20. explicit readHeader(QObject *parent = 0);
  21. headerInfo getHeaderInfo();
  22. ...
  23. private:
  24. ...
  25. signals:
  26. ...
  27. public slots:
  28.  
  29. private:
  30. ...
  31. headerInfo p_hdrinfo;
  32. };
  33.  
  34. #endif // READHEADER_H
To copy to clipboard, switch view to plain text mode 

So in my main program when include my readheader.h I can of course access the structure directly, but instead I use the getheaderinfo function which returns the structure(i don't really know what my reasoning behind that was). This code/class will never be distributed to anyone and any code that does use it will be writing. I am aware that the way I have done it also allows the structure contents to be changed anywhere in my code. Doesn't feel right.
I should also say that the header file contains various information in various formats e.g. int, double, string and some vectors.
I cant help but feel that this is not the right thing to do and is most likely considered really bad practice. I am still very new to C++ and Qt. I did initially have a ton of getter public functions in my class but wanted to return everything at once rather than making umpteen million calls.

Any help/advice on such things would be really appreciated.

Cheers
Oz