私にとって、static
C でのキーワードの使用、およびC#やJavaなどの言語の使用は、"to be"(英語)や "bekommen"(ドイツ語)(=英語で "to get")などの「偽の友達」です。
C static
では、関数または変数には、同じソースファイル内の関数を介してのみアクセスできます。これはprivate
、C ++、Java、およびC#の関数とメンバーに相当します。
C ++では、JavaとC#static
は、メソッドがクラスインスタンスのメンバーではないことを意味しますが、事実上、C関数と名前空間に似ています。
私見これら2つの概念はかなり異なるので、なぜC ++以降のJavaおよびC#の設計者はstatic
その動作のキーワードを選択したのですか?見落としている論理的な接続はありますか?
編集
私は知っstatic
ていprivate
ます、CではC ++ と同様の方法でアクセシビリティを管理しませんが、そのように使用できます、https://stackoverflow.com/a/1479639/124983を参照してください