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 ???
Bài liên quan
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
const PhanSo &PS
thì bạn viếtPhanSo PS
cũng được nhưng cáchPhanSo PS
là truyền tham trị thì khi đó vào hàm nó sẽ copy biếnPhanSo
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ònPhanSo &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 đổiPS
nên từPhanSo& PS
ta truyềnconst PhanSo &PS
const làmPS
không bị thay đổi khi vào hàm