Đối với tôi, việc sử dụng từ khóa statictrong C và các ngôn ngữ như C # và Java là "những người bạn giả" như "trở thành" trong tiếng Anh và "bekommen" trong tiếng Đức (= "to get" trong tiếng Anh), vì chúng có nghĩa là những thứ khác nhau.
Trong C staticcó nghĩa là, hàm hoặc biến chỉ có thể truy cập thông qua các hàm bên trong cùng một tệp nguồn, có thể so sánh với các privatehàm và thành viên trong C ++, Java và C #.
Trong C ++, Java và C # staticcó nghĩa là các phương thức không phải là thành viên của một thể hiện của lớp, nhưng thực tế là ít nhiều giống như các hàm C cộng với không gian tên.
IMHO hai khái niệm này khá khác nhau, vậy tại sao các nhà thiết kế của C ++ và Java và C # sau đó lại chọn statictừ khóa cho hành vi đó? Có một kết nối hợp lý mà tôi bỏ lỡ?
EDIT
Tôi biết rằng, statictrong C không chi phối khả năng truy cập theo cách tương tự như privatetrong C ++, nhưng có thể được sử dụng theo cách đó, xem https://stackoverflow.com/a/1479639/124983