Sử dụng trường hợp:Tại sao không có khái niệm "const-correctness" cho các hàm thành viên tĩnh của lớp?
class A {
static int s_common;
public:
static int getCommon() const { s_common; };
};
Thông thường điều này dẫn đến một lỗi như:
error: static member function ‘static int A::getCommon()’ cannot have cv-qualifier
Điều này là do const
Ness chỉ áp dụng cho các đối tượng được trỏ bởi this
, mà không phải là hiện diện trong một hàm static
thành viên .
Tuy nhiên, nó đã được cho phép, hàm "const" của hàm thành viên static
có thể dễ dàng liên quan đến các thành viên dữ liệu static
.
Tại sao tính năng này không có trong C++; bất kỳ lý do logic đằng sau nó?
@keety, [câu hỏi đó] (http://stackoverflow.com/questions/7035356/c-why-static-member-function-cant-be-created-with-const-qualifier) có liên quan và không trùng lặp , Tôi đã thấy điều đó và upvoted nó. Đối số con trỏ 'this' tôi đã đề cập trong câu hỏi của tôi và nó dường như không đủ. – iammilind
mát mẻ nhưng có thể tốt hơn nếu bạn liên kết chuỗi gốc trong câu hỏi để có được ngữ cảnh hoặc tâm trí bạn kết thúc với cùng một câu trả lời – keety