저는 매트릭스 프로그램을 작성 중이며 현재 점과 행렬을 곱하려고합니다. 나는 내 개체 이상 오류 (결과 및 P)이 함수에서 "표현이 오브젝트 유형의 포인터가 있어야합니다"를 점점 계속 : 표현식에는 객체 유형에 대한 포인터가 있어야합니다.
//Point Class functions
Point Matrix44::operator*(const Point & P){
Point result;
for (int i = 0; i < 4; i++) {
for (int k = 0; k < 4; k++) {
result.element[i][k] = 0;
for (int j = 0; j < 4; j++) {
result.element[i][k] = element[i][j] * P.element[j][k] + result.element[i][k];
}
}
}
return result;
}
내 두 클래스
은 다음과 같습니다 당신의Point
클래스에서
//Matrix class
class Point;
class Matrix44 {
private:
double element[4][4];
public:
Matrix44(void);
Matrix44 transpose(void) const;
friend istream& operator>>(istream& s, Matrix44& t);
friend ostream& operator<<(ostream& s, const Matrix44& t);
Matrix44 operator *(Matrix44 b);
Point operator*(const Point & P);
};
//Point class
class Point {
double element[4];
friend class Matrix44;
public:
Point(void) {
element[0] = element[1] = element[2] = 0;
element[3] = 1;
}
Point(double x, double y, double z){
element [0]=x;
element [1]=y;
element [2]=z;
element [3]=1;
}
};
정확하게 문제를 내 기능을 통해 복사하여 하나를 수용하기 위해 그것을 변경하는 것을 잊었다했다 차원 배열 :), 감사합니다! – Nick
내 두뇌가 자동 조종 장치에 있었기 때문에 나는 똑같은 일을했다.이 대답을 주셔서 감사합니다 –