шаблонные функции :
template <typename x> void Main_matrix_class::Move(const CVector &direct, x &matrix,bool straight){
initMtransfer(direct);
if(straight){
matrix*=mMove;
if(!this->dontmovemReformation)this->mReformation*=mMove;//esli dontmovemReformation=true togda mReformation dvigatbsia ne budet
//v protivnom sluchae mReformation budet izmeniatbcia
}
else{
matrix*=(!mMove);
if(!this->dontmovemReformation)this->mReformation*=(!mMove);
};
};
//-------------------------------------------------------------------------------------------------------------
template <typename x> x Main_matrix_class::prIsometric(const x &matrix){
x isomatr(matrix);
if(isomatr.getHeight()){
for(int i=0;i<matrix.getHeight();i++){
isomatr[i][0]=matrix[i][0]*(600/(800-matrix[i][2]));
isomatr[i][1]=matrix[i][1]*(600/(800-matrix[i][2]));
isomatr[i][3]=1;
}
}
else{
isomatr[0]=matrix[0]*(600/(800-matrix[2]));
isomatr[1]=matrix[1]*(600/(800-matrix[2]));
isomatr[3]=1;
}
//-----------------------------------------------------
// X=x*(z0-z1)/(z0-z)
// Y=y*(z0-z1)/(z0-z)
// z0 - koordinata centra proekcii
// z1 - koordinata kartinnoy ploskosti
// x,y,z - koordinatbI tochki
// X,Y - koordinatbI tochki na kartinnoy ploskosti posle deystviya proekcii
//-----------------------------------------------------
return isomatr;
};
Вот их опредления :
template <typename x> void Move(const CVector &direct,x &matrix,bool straight);
template <typename x> x prIsometric(const x &matrix);
Вот как они используются в одной программе :
m.Move((-1) * center,m.mObject,1);
m.prIsometric(mIso);
m - экземпляр класса где находятся шаблонные функции
center m.mObject,mIso - CVector и два CMatrix
Вот ошибка компилятора -
make: *** [LAB3] Ошибка 1
Exited with code 2.
Error while building project LAB3
When executing build step 'Make'
Пробовал исправить отладчиком но при отладке точки остановки он не видит(отладчик исправен)0_0