Класс Integer и опредлить перегруженную функцию

Здравстуйте у меня вот такое задание: Создать класс целых чисел integer. Определить перегруженную функцию, возвращающую максимальное из двух аргументов. Функция не является членом класса целых чисел. Перегруженные функции имеют аргументы типа int, ******, integer. Тело перегруженных функций должны быть одинаковыми. Помогите пожайлусто!!!!!
#include <iostream>
using namespace std;
 
class integer {
public:
    int n;
public:
    integer (int i) { n = i; }
    integer (myclass &m) {n=m.n;}
    friend void operator+(integer &c,int value);
};
 
void integer::operator+(integer &c,int value)
{
    integer o(c);
    //я понимаю, но не знаю как эту функцию тут записать
    return o;
}
 
int main()
{
//инициализация мне не извесна  
 
return 0;
}
10 ответов

что ваще она делает..не могу понять???
складывает (из названия же видно) объект и число и скалдывает число и объект
friend integer operator+(integer op1, int op2); Скажите пожалуйста, для чего вы используете friend (что это дает?)
объект+число -- верно число+объект -- неверноневерно, потомучто в левой части стоит целое число. Поскольку число имеет встроенный тип, операция сложения целого числа и объекта не определена. Следовательно компилятор сочтет это как ошибку. И если все время следить за положением объектов в выражениях - буде достаточно не удобно программировать. Для этого и нужны дружественные функции. В этом случае дружественная функция получает оба параметра. И те 2 выражения станут правильными, тк Дружественной функции не важен порядок следования операндовДружественные функции позволяют повысить гибкости перегруженного оператора


а как сотварить перегруженную функцию, возвращающею максимальное из двух аргументов.


ф-ию надо перегружать для того чтобы она принимала аргументы разных типов(как понял из задания)? тогда лучше так
template <class T>
T max(T &num1, T &num2){
    if (num1 > num2)
    return num1;
    return num2;
}


буду пробывать сделать=)


Romich41, у тебя случайно не сохранилась эта лаба???? Создать класс целых чисел integer. Определить перегруженную функцию, возвращающую максимальное из двух аргументов. Функция не является членом класса целых чисел. Перегруженные функции имеют аргументы типа int, ******, integer. Тело перегруженных функций должны быть одинаковыми.


#include <iostream>
 
using namespace std;
 
class integer{
    private:
    int longitude, latitude;
    public:
    integer(){};
    integer(int lg, int lt){
        longitude=lg;
        latitude=lt;
    }
 
    void show (){
        cout<<longitude<<" ";
        cout<<latitude<<"\n";
    }
    friend integer operator+(integer op1, int op2);
    friend integer operator+(int op1, integer op2);
};
 
    integer operator+(integer op1, int op2){ //объект класса с числом сложить
        integer temp;
        temp.longitude=op1.longitude+op2;
        temp.latitude=op1.latitude+op2;
        return temp;
    }
 
    integer operator+(int op1, integer op2){//число с объектом класса сложить
        integer temp;
        temp.longitude=op1+op2.longitude;
        temp.latitude=op1+op2.latitude;
        return temp;
    }
 
 
 
 
int main()
{
 
    integer ob1(10,20);
    integer ob2(5,30);
    integer ob3(7,14);
    ob1.show();
    ob2.show();
    ob3.show();
 
    ob1=ob2+10;
    ob3=10+ob2;
 
    ob1.show();
    ob3.show();
 
    return 0;
}
у меня только конструктор с 2 параметрами


ну и что ты сделал?=) что-то не пойму...где перегруженная функция, возвращающая максимальное из двух аргументов.


где перегруженная функция, возвращающая максимальное из двух аргументов.
я не это делал)пример перегруженной привел


а что ваще она делает..не могу понять???


friend integer operator+(integer op1, int op2);
Скажите пожалуйста, для чего вы используете friend (что это дает?)