سؤال

هل من الممكن للوصول إلى الوصول واستخدام أعضاء ثابت داخل فئة دون العمل أولا على إيجاد مثيل تلك الفئة؟ أي علاج الطبقة كنوع من مكبا للغلوبالس

وجيمس

هل كانت مفيدة؟

المحلول

ويمكنك أيضا استدعاء أسلوب ثابت من خلال مؤشر فارغة. رمز أدناه ستعمل ولكن من فضلك لا تستخدم ذلك:)

struct Foo
{
    static int boo() { return 2; }
};

int _tmain(int argc, _TCHAR* argv[])
{
    Foo* pFoo = NULL;
    int b = pFoo->boo(); // b will now have the value 2
    return 0;
}

نصائح أخرى

نعم، هذا هو بالضبط ما static يعني لأعضاء الفئة:

struct Foo {
    static int x;
};

int Foo::x;

int main() {
    Foo::x = 123;
}

وعلى صعيد آخر، وهذا هو ما هي مساحة ل:

namespace toolbox
{
  void fun1();
  void fun2();
}

واستخدام الوحيد من فئات وظائف ثابتة غير لفئات السياسة.

وباختصار، نعم.

في فترة طويلة، وهو عضو ثابت يمكن أن يسمى أي مكان، يمكنك ببساطة علاج اسم الفئة باعتبارها مساحة الاسم.

class Something
{
   static int a;
};

// Somewhere in the code
cout << Something::a;

ونعم:

class mytoolbox
{
public:
  static void fun1()
  {
    //
  }

  static void fun2()
  {
    //
  }
  static int number = 0;
};
...
int main()
{
  mytoolbox::fun1();
  mytoolbox::number = 3;
  ...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top