Your concern is that if you are rturning a reference to data from within the object does that have to be const. Yes. This
class Test {
    int m_num;
public:
    int& getNum()   const { return m_num; }
};
does not compile. You need
class Test {
    int m_num;
public:
    const int& getNum()   const { return m_num; }
};
your case with a vector
class Test {
    int m_num;
    std::vector<int> m_vec;
public:
    const int& getNum()   const { return m_num; }
    std::vector<int> getVec()   const { return m_vec; }
};
works fine because you are returning a copy
but this is not ok
class Test {
    int m_num;
    std::vector<int> m_vec;
public:
    const int& getNum()   const { return m_num; }
    std::vector<int> & getVec()   const { return m_vec; }
};
has to be
class Test {
    int m_num;
    std::vector<int> m_vec;
public:
    const int& getNum()   const { return m_num; }
    const std::vector<int> & getVec()   const { return m_vec; }
};