Theo Scott Meyers, để ngăn chặn sự lặp lại mã trong phiên bản const của getter và phiên bản không const của getter, hãy gọi phiên bản const của phương thức từ phiên bản không const: static_cast<const A&>(*this).Methodology();
tuy nhiên, trong tình cờ sử dụng do một Visual Assist X Intellisense overzealous tôi gõ: const_cast<const A&>(*this).Methodology();
và nó đã làm việc tốt.C++ sự khác biệt giữa việc thêm const-ness với static_cast và const_cast của đối tượng "this"?
Có bất kỳ sự khác biệt nào trong trường hợp này khi sử dụng một dàn diễn viên cụ thể?
IDE sử dụng: Visual Studio 2010.
Tôi tự hỏi tại sao Scott khuyến khích sử dụng static_cast trong khi const_cast có vẻ như là lựa chọn phù hợp hơn ở đây, cũng thể hiện rõ hơn ý định? Hay bạn không sử dụng chính xác theo cách anh ấy nói? – stijn
@stijn: Tôi cũng đã tự hỏi điều tương tự. 'const_cast' cảm thấy hơi tự nhiên hơn với tôi ngay cả đối với hướng an toàn hơn là thêm' const'. –
@CharlesBailey: xem câu trả lời của tôi để có khả năng thấy lý do tại sao anh ấy không quảng cáo cái này với người khác. – Casey