killeroflove1989
Youtube Master Race
- 26/4/06
- 35
- 0
đây là class phân số do mình viết:
#include<iostream.h>
#include<conio.h>
#include<math.h>
class PhanSo
{
private:
int Tu;
int Mau;
public:
void operator ++();
bool operator >=(PhanSo);
bool operator <(PhanSo);
void RutGon();
PhanSo operator +(PhanSo);
PhanSo operator *(PhanSo);
void operator <<();
void operator >>();
}
void PhanSo::operator ++()
{
Tu=Tu+Mau;
return(void);
}
bool PhanSo::operator >=(PhanSo P)
{
return(((Tu*P.Mau-Mau*P.Tu)*Mau*P.Mau)<0);
}
bool PhanSo::operator <(PhanSo P)
{
return!(*this>=P);
}
void PhanSo::RutGon()
{
int x,y,ucln;
x=Tu;
y=Mau;
while(x==y)
{
if(x>y)
x=x-y;
else
if(x<y)
y=y-x;
}
ucln=x;
Tu=Tu/ucln;
Mau=Mau/ucln;
}
PhanSo PhanSo::+(PhanSo P)
{
PhanSo Q;
Q.Tu=Tu*P.Mau+Mau*P.Tu;
Q.Mau=Mau*P.Mau;
Q.RutGon();
return(Q);
}
PhanSo PhanSo::*(PhanSo P)
{
PhanSo T;
T.Tu=T.Tu*P.Tu;
T.Mau=T.Mau*P.Mau;
T.RutGon();
return(T);
}
void PhanSo::operator >>()
{
cout<<Tu<<"/"<<Mau;
}
void PhanSo::operator <<()
{
while(Mau!=0)
cin>>Tu;cout<<"/";cin>>Mau;
if(Mau<0)
{
Tu=Tu*(-1);
Mau=Mau*(-1);
}
}
main()
{
PhanSo A,B,Tong,Tich;
cout<<"hay nhap vao hia phan so: \n";
cout<<"phan so thu 1: ";A<<;cout<<"\n";
cout<<"phan so thu 2: ";B<<;cout<<"\n";
cout<<"Tong hai phan so: ";
Tong=A+B;
Tong>>;
cout<<"\n";
cout<<"Tich hai phan so la: ";
Tich=A*B;
Tich>>;
cout<<"\n";
if(A>=B)
cout<<"phan so thu 1 lon hon phan so thu 2";
else
cout<<"phan so thu 1 nho hon phan so thu 2";
}
khi compile thì nó báo tới 19 lỗi như sau(mình dùng dev C++):
D:\Dev-Cpp\bin\PhanSo.cpp:17: error: `void PhanSo::operator<<()' must take exactly one argument
D:\Dev-Cpp\bin\PhanSo.cpp:18: error: `void PhanSo::operator>>()' must take exactly one argument
D:\Dev-Cpp\bin\PhanSo.cpp:22: error: new types may not be defined in a return type
D:\Dev-Cpp\bin\PhanSo.cpp:22: error: two or more data types in declaration of `operator++'
D:\Dev-Cpp\bin\PhanSo.cpp:22: error: prototype for `PhanSo PhanSo::operator++()' does not match any in class `PhanSo'
D:\Dev-Cpp\bin\PhanSo.cpp:11: error: candidate is: void PhanSo::operator++()
D:\Dev-Cpp\bin\PhanSo.cpp:22: error: `PhanSo PhanSo::operator++()' and `void PhanSo::operator++()' cannot be overloaded
D:\Dev-Cpp\bin\PhanSo.cpp:54: error: expected unqualified-id before '+' token
D:\Dev-Cpp\bin\PhanSo.cpp:54: error: expected init-declarator before '+' token
D:\Dev-Cpp\bin\PhanSo.cpp:54: error: expected `,' or `;' before '+' token
D:\Dev-Cpp\bin\PhanSo.cpp:63: error: expected `)' before "P"
D:\Dev-Cpp\bin\PhanSo.cpp:63: error: expected init-declarator before "P"
D:\Dev-Cpp\bin\PhanSo.cpp:63: error: expected `,' or `;' before "P"
D:\Dev-Cpp\bin\PhanSo.cpp:73: error: `void PhanSo::operator>>()' must take exactly one argument
D:\Dev-Cpp\bin\PhanSo.cpp:78: error: `void PhanSo::operator<<()' must take exactly one argument
D:\Dev-Cpp\bin\PhanSo.cpp: In function `int main()':
D:\Dev-Cpp\bin\PhanSo.cpp:92: error: expected primary-expression before ';' token
D:\Dev-Cpp\bin\PhanSo.cpp:93: error: expected primary-expression before ';' token
D:\Dev-Cpp\bin\PhanSo.cpp:96: error: expected primary-expression before ';' token
D:\Dev-Cpp\bin\PhanSo.cpp:100: error: expected primary-expression before ';' token
các bạn chỉ giúp mình các lỗi với, mình kém tiếng anh nên ko bít,nếu được thì sửa luôn giúp mình
.
___________Auto Merge________________
.
sorry vì mình ko biêt cách post code lên nên, các dòng nó hơi bị lộn xộn, thông cảm nha
#include<iostream.h>
#include<conio.h>
#include<math.h>
class PhanSo
{
private:
int Tu;
int Mau;
public:
void operator ++();
bool operator >=(PhanSo);
bool operator <(PhanSo);
void RutGon();
PhanSo operator +(PhanSo);
PhanSo operator *(PhanSo);
void operator <<();
void operator >>();
}
void PhanSo::operator ++()
{
Tu=Tu+Mau;
return(void);
}
bool PhanSo::operator >=(PhanSo P)
{
return(((Tu*P.Mau-Mau*P.Tu)*Mau*P.Mau)<0);
}
bool PhanSo::operator <(PhanSo P)
{
return!(*this>=P);
}
void PhanSo::RutGon()
{
int x,y,ucln;
x=Tu;
y=Mau;
while(x==y)
{
if(x>y)
x=x-y;
else
if(x<y)
y=y-x;
}
ucln=x;
Tu=Tu/ucln;
Mau=Mau/ucln;
}
PhanSo PhanSo::+(PhanSo P)
{
PhanSo Q;
Q.Tu=Tu*P.Mau+Mau*P.Tu;
Q.Mau=Mau*P.Mau;
Q.RutGon();
return(Q);
}
PhanSo PhanSo::*(PhanSo P)
{
PhanSo T;
T.Tu=T.Tu*P.Tu;
T.Mau=T.Mau*P.Mau;
T.RutGon();
return(T);
}
void PhanSo::operator >>()
{
cout<<Tu<<"/"<<Mau;
}
void PhanSo::operator <<()
{
while(Mau!=0)
cin>>Tu;cout<<"/";cin>>Mau;
if(Mau<0)
{
Tu=Tu*(-1);
Mau=Mau*(-1);
}
}
main()
{
PhanSo A,B,Tong,Tich;
cout<<"hay nhap vao hia phan so: \n";
cout<<"phan so thu 1: ";A<<;cout<<"\n";
cout<<"phan so thu 2: ";B<<;cout<<"\n";
cout<<"Tong hai phan so: ";
Tong=A+B;
Tong>>;
cout<<"\n";
cout<<"Tich hai phan so la: ";
Tich=A*B;
Tich>>;
cout<<"\n";
if(A>=B)
cout<<"phan so thu 1 lon hon phan so thu 2";
else
cout<<"phan so thu 1 nho hon phan so thu 2";
}
khi compile thì nó báo tới 19 lỗi như sau(mình dùng dev C++):
D:\Dev-Cpp\bin\PhanSo.cpp:17: error: `void PhanSo::operator<<()' must take exactly one argument
D:\Dev-Cpp\bin\PhanSo.cpp:18: error: `void PhanSo::operator>>()' must take exactly one argument
D:\Dev-Cpp\bin\PhanSo.cpp:22: error: new types may not be defined in a return type
D:\Dev-Cpp\bin\PhanSo.cpp:22: error: two or more data types in declaration of `operator++'
D:\Dev-Cpp\bin\PhanSo.cpp:22: error: prototype for `PhanSo PhanSo::operator++()' does not match any in class `PhanSo'
D:\Dev-Cpp\bin\PhanSo.cpp:11: error: candidate is: void PhanSo::operator++()
D:\Dev-Cpp\bin\PhanSo.cpp:22: error: `PhanSo PhanSo::operator++()' and `void PhanSo::operator++()' cannot be overloaded
D:\Dev-Cpp\bin\PhanSo.cpp:54: error: expected unqualified-id before '+' token
D:\Dev-Cpp\bin\PhanSo.cpp:54: error: expected init-declarator before '+' token
D:\Dev-Cpp\bin\PhanSo.cpp:54: error: expected `,' or `;' before '+' token
D:\Dev-Cpp\bin\PhanSo.cpp:63: error: expected `)' before "P"
D:\Dev-Cpp\bin\PhanSo.cpp:63: error: expected init-declarator before "P"
D:\Dev-Cpp\bin\PhanSo.cpp:63: error: expected `,' or `;' before "P"
D:\Dev-Cpp\bin\PhanSo.cpp:73: error: `void PhanSo::operator>>()' must take exactly one argument
D:\Dev-Cpp\bin\PhanSo.cpp:78: error: `void PhanSo::operator<<()' must take exactly one argument
D:\Dev-Cpp\bin\PhanSo.cpp: In function `int main()':
D:\Dev-Cpp\bin\PhanSo.cpp:92: error: expected primary-expression before ';' token
D:\Dev-Cpp\bin\PhanSo.cpp:93: error: expected primary-expression before ';' token
D:\Dev-Cpp\bin\PhanSo.cpp:96: error: expected primary-expression before ';' token
D:\Dev-Cpp\bin\PhanSo.cpp:100: error: expected primary-expression before ';' token
các bạn chỉ giúp mình các lỗi với, mình kém tiếng anh nên ko bít,nếu được thì sửa luôn giúp mình
.
___________Auto Merge________________
.
sorry vì mình ko biêt cách post code lên nên, các dòng nó hơi bị lộn xộn, thông cảm nha

