静的メンバー機能とグローバル機能の違いは何ですか?静的メンバー関数とグローバル関数の違いは何ですか?
void globalFunc()
{
}
class Test
{
public:
//In grammar side, object's not own this function
static void staticFunc();
};
静的メンバ関数は、それが意味 に分類し、アクセス範囲を制限することができ、グローバル関数ですが。
しかし、私は静的メンバー関数の呼び出し規約 が[この呼び出し]である理由を理解できません。
通常のメンバ関数は、呼び出し元オブジェクトのアドレスが必要なので、[この呼び出し]でなければならないが、静的メンバ関数がこの呼び出し規則を持つ理由は分かりますか?私はそれはオブジェクトの 機能ではないので、それは呼び出し元のアドレスを必要としないと思う。 静的メンバー機能とグローバル機能には違いがありますか?プライベートおよびクラス内の静的データメンバーを保護(未文法側ではなく、また、低電圧側)
申し訳ありません、「[this call] '? – Charles
静的メンバ関数は、静的でないメンバ関数(あたかも関数で 'this'を利用できないように)として呼び出すことができます。静的メンバー関数は 'extern" C "'にすることはできません。正式には、Cのコールバックとして移植可能に使うことはできませんが、コンパイラが実際的でないデフォルトを持つことはほとんどありません。 –
呼び出し規約は実装定義です。どの実装を参照していますか? –