我对创建我的模板类时发生了什么感到有些莫名其妙。我试图在构建过程中将成员vector_的容量设置为50(仅一次),但容量似乎从未正确设置,所以显然我不明白这应该如何完成。我已经包含了相关的代码片段以及控制台输出。感谢您的帮助!对于矢量C++初始化模板类
模板类:
的Rtemplate <typename T>
class V
{
public:
V()
{
std::cout << "capacity 1 = " << this->vector_.capacity() << "\n";
};
V(int capacity)
{
this->vector_.reserve(capacity);
std::cout << "capacity 2 = " << this->vector_.capacity() << "\n";
};
int capacity() const { return this->vector_.capacity(); };
private:
std::vector<T> vector_;
};
构造,其中它被初始化:
R::R()
{
std::cout << "capacity 0 = " << this->s_.capacity() << "\n";
this->s_ = V< std::vector< std::complex<float> > >(50);
std::cout << "capacity 3 = " << this->s_.capacity() << "\n";
};
R类别的部首:
class R
{
public:
R();
private:
V< std::vector< std::complex<float> > > s_;
};
输出到控制台:
capacity 1 = 0
capacity 0 = 0
capacity 2 = 50
capacity 3 = 0
缺少_copy-constructor_也许?生成该输出的代码是什么? –
这是如何编译的? 's_'的类型是'V',它没有方法'capacity' ... –
另外,让V()返回一些东西,比如说类vector的引用,这是problaby为什么你R中的最后一行构造函数令你感到困惑。 – johnathon