2016-05-31 1 views
0

Итак, я пишу программу, которая фокусируется на перегрузке оператора.Как вы называете функцию частного класса (с параметрами) в публичной функции того же класса?

Я пытаюсь написать частную функцию, чтобы найти наименьший общий знаменатель двух рациональных чисел (объектов в основном). Прямо сейчас, аксессуар просто не нравится параметры частной функции lcd.

вот моя ки частная функция:

long CRational::lcd(const CRational &rationalNumber) const{ 
    long gCF = 0; 
    long lCD = 0; 
    if (m_denominator != 0 && rationalNumber.m_denominator != 0){ 
     gCF = gcf(m_denominator, rationalNumber.m_denominator); 
     lCD = ((m_denominator/gCF)*rationalNumber.m_denominator); 
    } 

    return lCD; 
} 

Вот что я пытался за аксессор:

long CRational::getLCD() const 
{ 

    return lcd(const CRational &rationalNumber); 
} 

Прямо сейчас, я получаю красный squigglies под сопзЬ и & рационального числа. Const - имя типа не допускается & - неопознанный рациональное число

Надеялся кто-то может помочь мне, прежде чем я схожу с ума?

+1

Вы должны дать 'lcd' экземпляр' CRational', но это декларация 'CRational сопзЬ &'. –

+2

Как вы называете *** какой-либо функцией ***? Это не касается частных функций, публичных функций или функций-членов. Я вижу, что у вас есть функция gcf, которую вы вызываете отлично. – immibis

+0

В 'CRATION :: getLCD()', вы пытаетесь вернуть ЖК-дисплей этого '' объекта CRATION'? Например: 'return lcd (* this);'? –

ответ

1

Попробуйте это:

long CRational::getLCD(const Rational &rationalNumber) const 
{ 
    return lcd(rationalNumber); 
} 
+0

, но затем, когда я иду использовать accessor в одной из функций-членов, не хочет ли я, чтобы я вводил объект Rational в качестве параметра? – Keroro540

+0

@ Keroro540 Ну, я не понимаю, почему функция является «частной» в первую очередь. Если вы просто хотите сделать его общедоступным, сделайте его общедоступным, не добавляйте к нему другую публичную функцию, вызывающую его. И да, он этого захочет. Выполнение lcd означает наличие двух чисел, поэтому просто добавьте это второе число в accessor, как вы бы назвали 'lcd' в первую очередь. Но да, аксессоры для членов, использование одного для функции не имеет смысла. – coyotte508

+0

@ Keroro540 Да ... где еще вы ожидаете, что второй параметр будет работать на ЖК-дисплее? –

Смежные вопросы