Xin chào mọi người, hiện em đang học C++ trên trang web sololearn.com, đây là một trang em thấy khá hay và bổ ích, nếu mọi người có thời gian có thể xem qua.
Có điều học đến bài về overload operator thì có đoạn code này em không hiểu lắm:
#include <iostream>
using namespace std;
class myclass
{
public:
int var;
myclass(){};
myclass(int a):var(a){};
myclass operator+(myclass &obj)
{
myclass res;
res.var=this->var+obj.var;
return res;
}
};
int main()
{
myclass ob1(20),ob2(30);
myclass res=ob1+ob2;
cout<<res.var;
return 0;
}
Em không hiểu là:
- Tại sao lại phải có tới 2 constructor>
- Dòng operator+ có ý nghĩa gì, tại sao em bỏ nó thì bị lỗi? Ai có thể giải thích cho em sự thay thế giá trị các biến diễn ra như thế nào trong suốt đoạn hàm operator+ đó ko? (cái debug của em bị khùng khùng rồi, hic)
- Việc set biến private có ý nghĩa như thế nào? Nếu là để bên ngoài không sử dụng được biến đó thì tại sao còn có thêm từ khóa “friend” để dùng được những biến này?
Em vẫn còn gà mờ lắm, mong mọi người đừng cười nếu em hỏi dở hơi quá ạ, hic.
Em xin cảm ơn.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?