Trong các phần tử cơ thể sau của một vectơ con trỏ. Điểm là một cấu trúc của x, y, z tọa độ và một điểm_id. Tôi tin rằng khi cơ thể được truyền qua tham chiếu const, bước sau sẽ tạo ra lỗi. BUt chương trình đang chạy mà không có bất kỳ vấn đề. Bạn có thể vui lòng giải thích cho tôi lý do tại sao điều này.C++ truyền qua tham chiếu const
void readOutFile(const Body& body, int n){
....
body.bp[0]->points.push_back(Point_id(p,i));
}
'nội dung' được chuyển thành' const' nhưng không có cách nào để trình biên dịch biết rằng 'body.bp [0] -> điểm' phải là' const'. – wroniasty
Nó sẽ chạy ok và const lỗi sẽ là một lỗi thời gian biên dịch, không phải là một lỗi thời gian chạy. –
Trong C++, const là nông, không sâu. Vì vậy, nó ảnh hưởng đến đối tượng nhưng không ảnh hưởng đến các đối tượng của nó. Nó có nghĩa là bạn chỉ có thể gọi các phương thức const. Nhưng các phương thức const có thể thay đổi các đối tượng khác, luôn sử dụng các phương thức trong giao diện và sử dụng một công cụ lint tốt để kiểm tra độ sâu. –