我對創建我的模板類時發生了什麼感到有些莫名其妙。我試圖在構建過程中將成員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