как в определении класса оставить только прототипы методов, а реализацию за пределами класса

Сама задача: В классе создать два целочисленных поля a и b. Реализовать метод NOD для нахождения наибольшего общего делителя для a и b.

#include<iostream>

using namespace std;

class value
{
private:
    int a;
    int b;

public:
    void SetA(int valuea)
    {
        a = valuea;
    }
    
    void SetB(int valueb)
    {
        b = valueb;
    }

    int NODab()
    {
        while (a&&b)
            if (a > b) a %= b;
            else b %= a;
            return a + b;
    }

    void PrintNODab()
    {
        cout << " The greatest common divisor for A and B = " << NODab() << endl;
    }


    
};



int main()
{

    value NOD;

    NOD.SetA(15);

    NOD.SetB(6);

    NOD.NODab();

    NOD.PrintNODab();

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

Автор решения: Harry
class value
{
private:
    int a;
    int b;
public:
    void SetA(int valuea);
    void SetB(int valueb);
    int GCDab(); 
    void PrintGCDab();
};

void value::SetA(int valuea)
{
    a = valuea;
}
    
void value::SetB(int valueb)
{
    b = valueb;
}

int value::GCDab()
{
    while (a&&b)
        if (a > b) a %= b;
        else b %= a;
        return a + b;
}

void value::PrintGCDab()
{
    cout << " The greatest common divisor for A and B = " << GCDab() << endl;
}

Я не вдавался в суть вашего кода. Только позволил себе изменить транслит NOD на английский термин GCD.

→ Ссылка