0
在下面的示例中:我如何避免get_Children方法會抱怨返回類型不正確?如何正確地返回類A元素的向量?
或在編譯器語言:
TEST.CPP:在成員函數std::vector<A, std::allocator<A> > B::getVector() const
: TEST.CPP:38:錯誤:使const Box<A>
作爲std::vector<T,std::allocator<_CharT> > Box<T>::get_Children() [with T = A]
丟棄限定符
this
參數
#include <vector>
using namespace std;
template <class T> class Box
{
private:
std::vector<T> m_data;
public:
Box() {};
virtual ~Box() {}
void Add(T const &d);
void Remove();
T get_Child(size_t i) const;
size_t get_ChildCount() const;
std::string get_ChildNames() const;
std::vector<T> get_Children() { return m_data; }
};
class A
{
public:
A();
~A();
};
class B
{
private:
Box<A> m_Container;
B(const B &orig);
public:
B();
~B();
std::vector<A> getVector() const { return m_Container.get_Children();}
};
int main()
{
B b;
std::vector<A> a_vector;
a_vector = b.getVector();
return 0;
}