GIÁO TRÌNH C++ - Trang 82

CVector c;

Dù thế nào chăng nữa, tôi cần phải cảnh báo rằng một khối lệnh rỗng không
nên để tạo một constructor vì nó không thoả mãn chức năng tối thiểu mà một
constructor nên có, đó là việc khởi tạo tất cả các biến trong lớp. Trong trường
hợp của chúng ta constructor này đã để các biến

x

y

là không xác định. Vì

vậy một khai báo thích hợp hơn sẽ là một cái gì đó giống như thế này:

CVector () { x=0; y=0; };

để cho đơn giản tôi đã không viết vào trong ví dụ trên.
Cùng với việc tạo một constructor rỗng và một copy constructor, C++ còn mặc
định định nghĩa toán tử gán(

=

) giữa hai lớp có cùng một kiểu. Nó copy toàn bộ

nội dung của các thành viên không tĩnh (non-static) của đối tượng bên phải
phép gán cho đối tượng bên trái. Tất nhiên bạn có thể định nghĩa lại nó để thực
hiện chức năng khác mà bạn muốn, ví dụ như chỉ copy một số thành viên nào
đó của lớp.
Việc quá tải các toán tử không bắt buộc hoạt động của nó phải liên quan đến ý
nghĩa thông thường của nó mặc dù điều này là nên làm. Ví dụ có vẻ không
logic lắm nếu sử dụng toán tử + để trừ hai lớp hay toán tử

==

để điền số 0 vào

một lớp mặc dù điều đó là hoàn toàn hợp lệ.
Mặc dù khai báo mẫu của hàm

operator+

là khá hiển nhiên vì nó lấy phần bên

phải của toán tử làm tham số cho hàm

operator+

, các toán tử khác không phải

cái nào cũng rõ ràng như thế. Ở đây chúng ta có một bảng tổng kết về việc các
hàm operator phải được khai báo như thế nào (thay thế

@

bằng các toán tử

tương ứng):

Biểu thức
Toán tử (

@

)

Hàm thành viên

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.