سؤال

بعد بعض عمليات البحث والاستبدال، انتهى بي الأمر بهذه الجوهرة:

const class A
{
};

ماذا تعني "فئة const"؟يبدو لتجميع موافق.

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

المحلول

ماذا تعني "فئة const"؟يبدو لتجميع موافق.

ليس بالنسبة لي لا.أعتقد أن المترجم الخاص بك كان مهذبًا ويتجاهل ذلك.

يحرر: نعم، يتجاهل VC++ الثوابت بصمت، ويشكو مجلس التعاون الخليجي.

نصائح أخرى

ووconst لا معنى له في هذا المثال، والمترجم الخاص بك يجب أن يوفر لك خطأ، ولكن إذا كنت تستخدم لتعريف متغيرات من تلك الفئة بين } إغلاق و;، ثم يحدد تلك الحالات كما const، على سبيل المثال:


const class A
{
public:
    int x, y;
}  anInstance = {3, 4};

// The above is equivalent to:
const A anInstance = {3, 4};

إذا كان لديك هذا:

const class A
{
} a;

وبعد ذلك يعني بوضوح أن "أ" هو CONST. خلاف ذلك، وأعتقد أنه من المرجح ج غير صالحة ++.

وانها لا معنى لها ما لم تقوم بتعريف مثيل من الطبقة بعد ذلك، مثل هذا المثال:

const // It is a const object...
class nullptr_t 
{
  public:
    template<class T>
      operator T*() const // convertible to any type of null non-member pointer...
    { return 0; }

    template<class C, class T>
    operator T C::*() const   // or any type of null member pointer...
    { return 0; }

  private:
    void operator&() const;  // Can't take address of nullptr

} nullptr = {};

وتنفيذا nullptr المؤقت إذا كنت في انتظار C ++ 0X.

وحاول تجميع مع دول مجلس التعاون الخليجي، وسوف تعطيك أدناه الخطأ:
error: qualifiers can only be specified for objects and functions.

وكما ترون من الخطأ أن الكائنات (المتغيرات، المؤشرات، كائنات فئة الخ) فقط، ويمكن أن تكون ثابتة وظائف. وذلك في محاولة جعل الكائن ثابت كما، ومن ثم ينبغي تجميع ما يرام.
     const class A {};
    const A a ;

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top