Компилятор не видит переменные
У меня есть функция 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 вариантов:
- Это могут быть локальные переменные в этой функции
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() );
}
- Это могут быть параметры в этой функции
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() );
}
- Это могут быть глобальные переменные
double cos_ax, cos_ay, cos_ah;
CStep4 CStep4::Pt1(void) {}
- Это могут быть члены класса
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() );
}
- Это могут быть публичные члены класса
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() );
}