次のクラスがあると想像してください。
class A
{
private:
static int m_a;
public:
A() {}
static int get_sum(int b);
};
int A::m_a = 5;
int A::get_sum(int b)
{
return m_a + b;
}
int main() {
// your code goes here
A a;
int c = a.get_sum(10);
cout << "C=: " << c << endl;
return 0;
}
上記のコードでは、パブリックの静的メンバー関数 get_sum() を呼び出す 1 つのプライベートの静的メンバー変数を含むクラスがあります。ここで質問: "this" ポインターを持たない関数は、クラス メンバー変数 m_a にどのようにアクセスできますか? リップマンの本で、私はそれを読んだ:
(( Point3d* ) 0 )->object_count();
whereは、 静的データ メンバー
object_count()
を返すだけです。_object_count
このイディオムはどのように進化しましたか? ...................
................................... ...........
//呼び出しの内部変換
object_count(( Point3d* ) 0 );
言語ソリューションは、公式の cfront リリース 2.0 内に静的メンバー関数を導入することでした。
this
静的メンバー関数の主な特徴は、ポインターがないことです。
0 をクラス型 object にキャストする方法がわかりませんか?