CVector a (3,1);
CVector b (1,2);
CVector c;
c = a + b;
cout << c.x << "," << c.y;
return 0;
}
4,3
Nếu bạn thấy quá nhiều
CVector
hãy để ý rằng một số trong chúng tham chiếu
đến tên lớp
CVector
còn số còn lại là tên các hàm (constructor và destructor).
Đừng lẫn lộn
CVector (int, int);
// Hàm có tên Vector (constructor)
CVector operator+ (CVector);
// Hàm operator+ trả về kiểu
CVector
Hàm
operator+
của lớp
CVector
được dùng để quá tải toán tử số học +. Hàm
này có thể được gọi bằng một trong các cách:
c = a + b;
c = a.operator+ (b);
Hãy chú ý rằng chúng ta đã thêm vào constructor rỗng (không có tham số) và
chúng ta định nghĩa nó với một khối lệnh cũng rỗng nốt:
CVector () { };
điều này là cần thiết vì còn có một constructor khác,
CVector (int, int);
và vì vậy các constructors mặc định không tồn tại trong
CVector
nếu chúng ta
không khai nó một cách rõ ràng. Khai báo sau đây sẽ là không hợp lệ: