Задание на С++
Разработайте и протестируйте класс Rational, представляющий рациональное число (простую дробь )в виде пары целых чисел: числитель и знаменатель. Определите стандартный конструктор, конструктор с параметрами и операцию умножения двух дробей. Передачу параметра в метод организуйте по указателю, передачу результата - по значению. При разработке метода используйте переопределение операции умножения. Данные класса описать со спецификатором private.
Ответы на вопрос
Відповідь:
C++ code:
#include <iostream>
class Rational{
private:
int num;
int den;
public:
Rational();
Rational(int,int);
Rational(const Rational&);
~Rational() = default;
void set_num(int);
void set_den(int);
int get_num();
int get_den();
Rational& operator * (const Rational&);
friend std::ostream& operator <<(std::ostream& out,const Rational& obj){
out << obj.num << "/" << obj.den << std::endl;
return out;
}
};
Rational::Rational(){
num = 1;
den = 1;
}
Rational::Rational(int num,int den){
this->num = num;
this->den = den;
}
Rational::Rational(const Rational& object){
this->num = object.num;
this->den = object.den;
}
void Rational::set_den(int den){
this->den = den;
}
void Rational::set_num(int num){
this->num = num;
}
int Rational::get_den(){
return this->den;
}
int Rational::get_num(){
return this->num;
}
Rational& Rational::operator *(const Rational& obj){
Rational out;
out.num = this->num * obj.num;
out.den = this->den * obj.den;
return out;
}
int main(){
Rational one(2,4);
Rational two(6,8);
Rational result = one * two;
std::cout << result << std::endl;
return 0;
}
}