我有從/擴展矩陣基類(模板類)派生的Matrix4類。模板類的方法在同一個頭文件中聲明和定義。矩陣類:錯誤:''''令牌之前的預期主表達式
我只複製了給出錯誤的「Matrix4」類的部分。行10 &上發生同樣的錯誤13.我看不到任何缺少的變量或參數。我試圖帶走括號,但無濟於事。
我已經搜索了一些關於我可能做錯了什麼的線索,但是我沒有在這個網站的類似問題上找到任何有用的信息......我真的很感謝這個幫助。
的Matrix4類給出錯誤:
template<typename T>
class Matrix4 : public Matrix<T, 4>
{
public:
Matrix4() { }
inline Matrix4 InitOrthographic(T left, T right, T bottom, T top, T near, T far)
{
const T width = (right - left);
const T height = (top - bottom);
const T depth = (far - near); //error occurs here
(*this)[0][0] = T(2)/width; (*this)[1][0] = T(0); (*this)[2][0] = T(0); (*this)[3][0] = -(right + left)/width;
(*this)[0][1] = T(0); (*this)[1][1] = T(2)/height; (*this)[2][1] = T(0); (*this)[3][1] = -(top + bottom)/height;
(*this)[0][2] = T(0); (*this)[1][2] = T(0); (*this)[2][2] = T(-2)/depth; (*this)[3][2] = -(far + near)/depth; //and here
(*this)[0][3] = T(0); (*this)[1][3] = T(0); (*this)[2][3] = T(0); (*this)[3][3] = T(1);
return *this;
}
基本基質類:
template<typename T, unsigned int D>
class Matrix
{
public:
Matrix() { }
virtual ~Matrix() { }
Matrix(const Matrix& other) { *this = other; }
inline Matrix InitIdentity(); //defined in the same header, but left out here to save space
inline Matrix InitTranslation(const Vector<T, D-1>& r);
inline Matrix& operator=(const Matrix& rhs);
inline Matrix operator*(const Matrix<T,D>& r) const;
inline const T* operator[](int index) const { return m[index]; }
inline T* operator[](int index) { return m[index]; }
private:
T m[D][D];
};
有在底部沒有錯誤「黑客帝國」級,僅在派生「Matrix4」級。
如果因爲我下一個YouTube教程的xD
有一個在上面的代碼中沒有行號。所以10和13是沒有意義的。哪一行導致錯誤?我沒有任何錯誤... – knightrider
此代碼充滿了在類方法中返回'Matrix'的錯誤示例。 – Mykola
我添加了註釋以指示發生錯誤的位置。例如_const T depth =(far-near); _ line和_(* this)[0] [3] = T(0); (* this)[1] [3] = T(0); (* this)[2] [3] = T(0); (* this)[3] [3] = T(1); //和here_ – searchnot