bạn không post code overload lên thì làm sao biết dc tại sao ???
Mình overloaded << và ++ cho một đối tượng với ++ prefix thì OK, nhưng ++ posfix thì nó báo lỗi, ai có thể giải thích giúp mình không?
thanks for your reply.
bạn không post code overload lên thì làm sao biết dc tại sao ???
Programming tutorials and source code examples
Trong nhà không vợ không con
Uống bia gặm thịt sao ngon thế này
Nhậu nhẹt không bị la rầy
Một tuần ta cứ bảy ngày " nâng ly "....
Mình được biết là trong khi khai báo và định nghĩa hàm posfix ++ thì phải thêm từ khóa const vào trước đối tượng thì mới cout <<object++ được, xin lỗi vì mã nguồn mình code trên lớp mà chưa mang về nhà nên chưa có.
hàm overload của bạn là operator++(int) hay operator++()
Programming tutorials and source code examples
Trong nhà không vợ không con
Uống bia gặm thịt sao ngon thế này
Nhậu nhẹt không bị la rầy
Một tuần ta cứ bảy ngày " nâng ly "....
tât nhiên của mình là operator++(int).
Bạn khai báo operator << thế nào?
Nghe triệu chứng của bạn thì có vẻ bạn khai báo các operator thế này:
C++ Code:
ostream& operator<<(ostream&, A&); A& A::operator++(); A A::operator++(int);
Nếu không phải như thế thì bạn bỏ qua đoạn sau đâychưa có code, bắt bệnh mò mẫm khổ thế đấy!
Nếu đúng như mình đoán thì postfix ++ không chạy được vì nó trả về A, mà operator<< của bạn yêu cầu A&.
Để sửa bạn cần khai báo ostream& operator<<(ostream&, const A&);
Đã được chỉnh sửa lần cuối bởi fbchicken : 19-09-2011 lúc 11:10 PM.