30/09/2018, 17:24

Mọi người giúp đỡ về const trong toán tử gán

Mình đang tìm hiểu về toán tử gán.Nhưng mình không hiểu const là để làm gì?Rất mong được mọi người chỉ bảo !!! Cám ơn huynh đệ.
Ví dụ:

void operator=(const PhanSo &PS); // const PhanSo &PS???

const PhanSo operator=(const PhanSo &PS); // const ???
lâm phúc tài viết 19:33 ngày 30/09/2018

theo mình thì ‘’‘const’’’ là 1 kiểu thêm vào của kiểu dữ liệu thôi giống như ‘’‘unsigned int’’’ vậy nhưng điểm đặc biệt của noa là không thể thay đổi được, nếu bạn truyền 1 tham số const vào hàm thì trong quá trình thực thi hàm đó bạn không thể thay đổi giá trị của biến đó, làm vậy để đỡ bị sai sót nếu ko biết biến đó bị thay đổi do đâu sai thôi nha

Trần Toàn viết 19:39 ngày 30/09/2018

void operator=(const PhanSo &PS);

const PhanSo &PS thì bạn viết PhanSo PS cũng được nhưng cách PhanSo PS là truyền tham trị thì khi đó vào hàm nó sẽ copy biến PhanSo thành 1 bản sao khác và truyền vào hàm => đối với những class có khối lượng lớn việc copy sẽ làm hiệu xuất giảm có thể dẫn tới tràn bộ nhớ. Còn PhanSo &PS là cách truyền tham chiếu nó chỉ truyền địa chỉ của biến vào nên sẽ có hiệu suất cao , tránh tràn bộ nhớ, nhưng ta lại không muốn thay đổi PS nên từ PhanSo& PS ta truyền const PhanSo &PS const làm PS không bị thay đổi khi vào hàm

Bài liên quan
0