Tôi đã đọc cuốn sách C++ của tôi (Deitel) khi tôi bắt gặp một hàm để tính thể tích của khối lập phương. Mã này là như sau:Không phải là "const" dư thừa khi đi qua giá trị?
double cube (const double side){
return side * side * side;
}
Lời giải thích cho việc sử dụng "const" vòng loại là một trong những điều này: "Các const đủ điều kiện nên được sử dụng để thực thi các nguyên tắc đặc quyền tối thiểu, nói với trình biên dịch rằng chức năng không thay đổi bên biến ".
Câu hỏi của tôi: không sử dụng "const" dư thừa/không cần thiết ở đây vì biến đang được truyền theo giá trị, vì vậy hàm không thể sửa đổi nó?
Ý nghĩa của 'const' ở đây là bạn không thể sửa đổi 'tham số side' bên trong()' phương pháp khối 'để tránh những hành vi bất ngờ. –
đôi khi mọi thứ có thêm về 'thực hành tốt' hơn là cần thiết. Tôi nghĩ đây là một trong những lần đó. – destan
Tôi nghĩ rằng các câu trả lời đã làm một công việc tốt để giải thích lý do tại sao bạn sẽ làm điều đó, nhưng tôi sẽ chỉ thêm nó vào một người gọi bên ngoài, 'const' * là * dư thừa và không phải là một phần của chữ ký của hàm. Điều đó có nghĩa là bạn có thể để nó trong phần khai báo hàm mà không thay đổi gì cả. Bạn cũng có thể xóa nó sau này nếu vì lý do nào đó mà bạn muốn làm cho mã của bạn ít bảo trì hơn, và nó sẽ không ảnh hưởng đến mã gọi. –