我在編譯以下頭部時遇到問題。這是我對模板的第一次體驗,我想我錯了。編譯器在vector<vector<T>> data_;
處指出錯誤和運算符重載函數。我想data_
載體與OptBaseMatrix
對象具有相同的類型,但我不知道該怎麼做......我真的不知道如何解決這個問題。幫幫我!也是模板的模板類和類屬性
#ifndef OPTBASEMATRIX_H
#define OPTBASEMATRIX_H
#include <vector>
template<typename T>
class OptBaseMatrix
{
public:
vector<vector<T>> data_;
OptBaseMatrix(int rows, int cols);
~OptBaseMatrix();
void readMatrix();
void printMatrix();
int getRows();
int getCols();
OptBaseMatrix<T> operator+(const OptBaseMatrix<T>& matrix1, const OptBaseMatrix<T>& matrix2);
private:
int rows_;
int cols_;
};
#endif // OPTBASEMATRIX_H
UPDATE:這裏是來自調試器的日誌的一個片段:
Error 1 error C2143: syntax error : missing ';' before '<' optbasematrix.h 17 TD2
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int optbasematrix.h 17 TD2
我試圖修改矢量> data_中的數據;通過vector> data_;並仍然得到相同的錯誤:/我讀了我的模板類頭(.h)和實現(.cpp)必須在同一個文件...這可能是相關的?
UPDATE 2:哇!我忘記了「使用名稱空間標準;」。現在問題似乎已經修復!
它可以幫助你包括你所得到的實際誤差。 – 2010-02-02 17:37:33