Компилятор не видит переменные

У меня есть функция CStep4, в которой есть конструктор, указывающий на функцию другого класса CPeleng& a_peleng_1

class CStep4: public CCoord{
public:
CStep4(CPeleng& a_peleng_1);
CStep4 Pt1(){  
    double Xt1 = x1 + t1 * cos_ax;
    double Yt1 = y1 + t1 * cos_ay;
    double Ht1 = h1 + t1 * cos_ah;

}  

class CPeleng{  
public: 
void a_peleng_1(double const f_azimut_E1, double const f_azimut_B1) {
    double const cos_ax = cos(f_azimut_E1)*cos(f_azimut_B1);
    double const cos_ay = cos(f_azimut_E1)*sin(f_azimut_B1); 
    double const cos_ah = sin(f_azimut_E1);
    
}

Проблема: компилятор не видит cos_ax, cos_ay, cos_ah

Вопрос: какое значение в классе CStep4 нужно вернуть


Ответы (1 шт):

Автор решения: DmitryK

Чтобы в функции Step4::Pt1() были видны переменные cos_ax, cos_ay, cos_ah возможны 5 вариантов:

  1. Это могут быть локальные переменные в этой функции
CStep4 CStep4::Pt1(void)
{  
    double cos_ax, cos_ay, cos_ah;
    double Xt1 = x1 + t1 * cos_ax;
    double Yt1 = y1 + t1 * cos_ay;
    double Ht1 = h1 + t1 * cos_ah;
    return CStep4( CPeleng() );
}
  1. Это могут быть параметры в этой функции
CStep4 CStep4::Pt1(double cos_ax, double cos_ay, double cos_ah)
{  
    double Xt1 = x1 + t1 * cos_ax;
    double Yt1 = y1 + t1 * cos_ay;
    double Ht1 = h1 + t1 * cos_ah;
    return CStep4( CPeleng() );
}
  1. Это могут быть глобальные переменные
double cos_ax, cos_ay, cos_ah;

CStep4 CStep4::Pt1(void) {}
  1. Это могут быть члены класса CStep4
class CStep4: public CCoord{
public:
double cos_ax, cos_ay, cos_ah; 

CStep4 Pt1() {  
    double Xt1 = x1 + t1 * cos_ax;
    double Yt1 = y1 + t1 * cos_ay;
    double Ht1 = h1 + t1 * cos_ah;
    return CStep4( CPeleng() );
}  
  1. Это могут быть публичные члены класса CCoord
class CCoord {
public:
double cos_ax, cos_ay, cos_ah; 
};

class CStep4: public CCoord{
public:
CStep4 Pt1() {  
    double Xt1 = x1 + t1 * cos_ax;
    double Yt1 = y1 + t1 * cos_ay;
    double Ht1 = h1 + t1 * cos_ah;
    return CStep4( CPeleng() );
}  
→ Ссылка