Компилятор ругается на операторы
Есть класс CStep4, в нем конструктор, в котором я передал переменные из других классов. Не могу понять в чем ошибка с операторами " * ".
class CStep4 {
public:
double Xt1, Yt1, Ht1, Xt2, Yt2, Ht2;
public:
CStep4(CStep2 t1, CStep1 cos_bx, CStep1 cos_by, CStep1 cos_bh){
Xt1= x + t1 * cos_bx; //подчеркнуто умножение
Yt1= y + t1 * cos_by; //подчеркнуто умножение
Ht1= h + t1 * cos_bh; //подчеркнуто умножение
}
CStep2:
class CStep2: public CCoord {
public:
static double a1, a2, a3, b1, b2 ,b3;
CStep2(double cos_ax, double cos_ay, double cos_ah, double cos_bx, double cos_by, double cos_bh){
a1 = cos_ah * cos_bx - cos_ax * cos_bh;
a2 = cos_ay * cos_bh - cos_ah * cos_by;
a3 = cos_ax * cos_by - cos_ay * cos_bx;
b1 = cos_ax * (h2 - h) - cos_ah * (x2 - x);
b2 = cos_ah * (y2 - y) - cos_ay * (h2 - h);
b3 = cos_ay * (x2 - x) - cos_ax * (y2 - y);
}
public:
double t1 = -((a1*b1 + a2*b2 + a3*b3)/(pow(a1,2) + pow(a2,2) + pow(a3,3)));
CStep1:
class CStep1 {
public:
double cos_ax, cos_ay, cos_ah, cos_bx, cos_by, cos_bh;
CStep1(double a_E1, double a_B1, double a_E2, double a_B2){
cos_ax = cos(a_E1) * cos(a_B1);
cos_ay = cos(a_E1) * sin(a_B1);
cos_ah = sin(a_E1);
cos_bx = cos(a_E2) * cos(a_B2);
cos_by = cos(a_E2) * sin(a_B2);
cos_bh = sin(a_E2);
}
};
Ответы (1 шт):
Автор решения: DmitryK
→ Ссылка
Здесь не понятно - что такое x, y, h? Откуда они взялись? Видимо код приведен не полный.
Разве что только путем логического рассуждения можно понять что CStep2 наследует их от CCoord - class CStep2: public CCoord
class CStep4 {
public:
double Xt1, Yt1, Ht1, Xt2, Yt2, Ht2;
public:
CStep4(const CStep2& a, const CStep1& b)
{
Xt1= a.x + a.t1 * b.cos_bx;
Yt1= a.y + a.t1 * b.cos_by;
Ht1= a.h + a.t1 * b.cos_bh;
}
}
Но возможно есть проблема. Вы никак не инициализируете эти переменные x y h в конструкторе CStep2. А по-идее вы должны вызвать конструктор базового класса и передать в него нужные параметры.