Thắc mắc quá không hiểu trình biên dịch có lý do gì? Nhờ các bạn giải thích giúp mình vs!
#include <iostream>
using namespace std;
class PhanSo
{
public:
PhanSo(int t = 0, int m = 1)
:tu(t), mau(m){}
~PhanSo(){}
friend PhanSo operator*(const PhanSo &ps1, const PhanSo &ps2){
PhanSo ps;
ps.tu = ps1.tu*ps2.tu;
ps.mau = ps1.mau*ps2.mau;
return ps;
}
friend ostream& operator<<(ostream &os, const PhanSo &ps){
os << ps.tu << "/" << ps.mau;
return os;
}
//operator float () { return float(tu) / mau; }//why?
private:
int tu;
int mau;
};
int main()
{
PhanSo ps;
cout << ps * 3 << endl;
return 0;
}
Trong đoạn code này nếu mình bỏ dấu chú thích trong đoạn code trên ->thì câu lệnh :cout<<ps*3<<endl; sẽ bị lỗi ngay.
Tell me Why?
hoặc là
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?