#include<stdlib.h>
#include <iostream> // cin, cout, instream, ostream, endl
using namespace std;
class Rationnel
{
int * num,* den;
public :
Rationnel( )
{
num= new int ;
den= new int ;
( * num) = 0 ;
( * den) = 1 ;
}
Rationnel( int a,int b)
{
num= new int ;
den= new int ;
( * num) = a;
( * den) = b;
}
Rationnel( Rationnel & R)
{
num= new int ;
den= new int ;
num= R.num ;
den= R.den ;
}
~Rationnel( void )
{
delete num;
delete den;
}
int getnum( )
{
return ( * num) ;
}
int getden( )
{
return ( * den) ;
}
void setnum( int a)
{
( * num) = a;
}
void setden( int b)
{
( * den) = b;
}
float conversion( )
{
return ( 1.0 * ( * num) ) / ( * den) ;
}
/*friend Rationnel inversion()
{
Rationnel R;
int a;
//a=(*num);
R.setnum(getnum());
// a=(*den);
R.setden(getden());
return R;
}*/
ostream & operator<< ( ostream & out, const Rationnel & R) {
return out << R.getnum ( ) << "/ " << R.getden ( ) ;
}
instream & operator>> ( ostream & in, const Rationnel & R) {
int a
in>> a;
R.setnum ( a) ;
in>> a;
R.setden ( a) ;
}
} ;
void read( Rationnel R)
{
int a;
cout << "numerateur :" ;
cin >> a;
R.setnum ( a) ;
cout << "denominateur :" ;
cin >> a;
R.setden ( a) ;
}
void print( Rationnel R)
{
cout << R.getnum ( ) << "/" << R.getden ( ) << endl;
}
Rationnel add( Rationnel R1,Rationnel R2)
{
Rationnel R3;
R3.setnum ( R1.getnum ( ) * R2.getden ( ) + R1.getden ( ) * R2.getnum ( ) ) ;
R3.setden ( R1.getden ( ) * R2.getden ( ) ) ;
}
main( )
{
}
I2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4gLy8gY2luLCBjb3V0LCBpbnN0cmVhbSwgb3N0cmVhbSwgZW5kbAoKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBSYXRpb25uZWwKewogICAgICBpbnQgKm51bSwqZGVuOwogICAgICBwdWJsaWM6CiAgICAgICAgICAgICBSYXRpb25uZWwoKQogICAgICAgICAgICAgewogICAgICAgICAgICAgIG51bT1uZXcgaW50OwogICAgICAgICAgICAgIGRlbj1uZXcgaW50OwogICAgICAgICAgICAgICgqbnVtKT0wOwogICAgICAgICAgICAgICgqZGVuKT0xOyAgICAgICAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBSYXRpb25uZWwoaW50IGEsaW50IGIpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgbnVtPW5ldyBpbnQ7CiAgICAgICAgICAgICAgZGVuPW5ldyBpbnQ7CiAgICAgICAgICAgICAgKCpudW0pPWE7CiAgICAgICAgICAgICAgKCpkZW4pPWI7ICAgICAgICAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFJhdGlvbm5lbChSYXRpb25uZWwgJlIpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgbnVtPW5ldyBpbnQ7CiAgICAgICAgICAgICAgZGVuPW5ldyBpbnQ7CiAgICAgICAgICAgICAgbnVtPVIubnVtOwogICAgICAgICAgICAgIGRlbj1SLmRlbjsgICAgICAgIAogICAgICAgICAgICAgfQogICAgICAgICAgICAgflJhdGlvbm5lbCh2b2lkKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSBudW07CiAgICAgICAgICAgICAgICBkZWxldGUgZGVuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpbnQgZ2V0bnVtKCkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAoKm51bSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGludCBnZXRkZW4oKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuICgqZGVuKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdm9pZCBzZXRudW0oaW50IGEpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAoKm51bSk9YTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdm9pZCBzZXRkZW4oaW50IGIpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAoKmRlbik9YjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZmxvYXQgY29udmVyc2lvbigpCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAoMS4wKigqbnVtKSkvKCpkZW4pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvKmZyaWVuZCBSYXRpb25uZWwgaW52ZXJzaW9uKCkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFJhdGlvbm5lbCBSOwogICAgICAgICAgICAgICAgICAgICBpbnQgYTsKICAgICAgICAgICAgICAgICAgICAgLy9hPSgqbnVtKTsKICAgICAgICAgICAgICAgICAgICAgUi5zZXRudW0oZ2V0bnVtKCkpOwogICAgICAgICAgICAgICAgICAgIC8vIGE9KCpkZW4pOwogICAgICAgICAgICAgICAgICAgICBSLnNldGRlbihnZXRkZW4oKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSOwogICAgICAgICAgICAgIH0qLwogICAgICAgICAgICAgIG9zdHJlYW0gJm9wZXJhdG9yPDwob3N0cmVhbSAmb3V0LCBjb25zdCBSYXRpb25uZWwgJlIpIHsKICAgICAgICAgICAgICByZXR1cm4gb3V0IDw8IFIuZ2V0bnVtKCk8PCAiLyAiIDw8IFIuZ2V0ZGVuKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGluc3RyZWFtICZvcGVyYXRvcj4+KG9zdHJlYW0gJmluLCBjb25zdCBSYXRpb25uZWwgJlIpIHsKICAgICAgICAgICAgICBpbnQgYQogICAgICAgICAgICAgIGluPj5hOwogICAgICAgICAgICAgIFIuc2V0bnVtKGEpOwogICAgICAgICAgICAgIGluPj5hOwogICAgICAgICAgICAgIFIuc2V0ZGVuKGEpOwogICAgICAgICAgICAgIH0KfTsKdm9pZCByZWFkKFJhdGlvbm5lbCBSKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGludCBhOwogICAgICAgICAgICAgICAgICAgY291dDw8Im51bWVyYXRldXIgICA6IjsgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICBjaW4+PmE7CiAgICAgICAgICAgICAgICAgICBSLnNldG51bShhKTsKICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJkZW5vbWluYXRldXIgOiI7ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgY2luPj5hOwogICAgICAgICAgICAgICAgICAgUi5zZXRkZW4oYSk7CiAgICAgICAgICAgICAgfQp2b2lkIHByaW50KFJhdGlvbm5lbCBSKQp7CiAgICAgY291dDw8Ui5nZXRudW0oKTw8Ii8iPDxSLmdldGRlbigpPDxlbmRsOwp9ClJhdGlvbm5lbCBhZGQoUmF0aW9ubmVsIFIxLFJhdGlvbm5lbCBSMikKewogICAgICAgICAgUmF0aW9ubmVsIFIzOwogICAgICAgICAgUjMuc2V0bnVtKFIxLmdldG51bSgpKlIyLmdldGRlbigpK1IxLmdldGRlbigpKlIyLmdldG51bSgpKTsKICAgICAgICAgIFIzLnNldGRlbihSMS5nZXRkZW4oKSpSMi5nZXRkZW4oKSk7Cn0KCm1haW4oKQp7Cgp9Cg==
compilation info
prog.cpp:67:67: error: 'std::ostream& Rationnel::operator<<(std::ostream&, const Rationnel&)' must take exactly one argument
ostream &operator<<(ostream &out, const Rationnel &R) {
^
prog.cpp:70:15: error: 'instream' does not name a type
instream &operator>>(ostream &in, const Rationnel &R) {
^
stdout