الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]الاعضاء والدوال الساكنه (static )في ال class

بدأه طموحة بلا حدود في 8 مارس 2013 · 1 رد · 584 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

آسفه جدا على كثر الاسئله  لكنني لا اجد  الاستفادة والمعلومه الصحيحة الا في هذا المنتدى الذي يستحق المشرفون والاعضاء فيه كل الشكر

 

عندي سوال في ال static

 

قرات انه       (أي دالة تعامل مع بيانات ( متغيرات ) ساكنة لابد أن تكون ساكنة أيضاً . )

كما في الكود

class test
{
private:
int static n;
public:
test()
{++n;}
static void display()
{
cout<<n<<endl;
}};
int test::n=2;
int main()
{
test t1,t2,t3;
test::display();

t1.display();
t3.display();
 
	  return 0;
}

 

لكن عندما طبقت الكود  الداله display تنفذت بدون ان تكون ساكنه وتعمل نفس العمل اذا كانت ساكنه 

اريد توضيح  للعباره (أي دالة تعامل مع بيانات ( متغيرات ) ساكنة لابد أن تكون ساكنة أيضاً . )

كثيــــرووون هــــــــم أولئـكــــــ الـــــــذيـــن يسعــــووون جــــــاهــــــدين مــــن أجـــــل التميـــــز ولكـــــــن!!!!

هيهــــــــات فالقمــــــــة لا تتســـــع إلا لـــــــواحد ومـــــع ذالكــــــــ فلكــــــل مجتهــــــــد نصيــــب

#2

هذه ليست مقولة صحيحة. فيمكن للوظيفة أن تتعامل مع بيانات ساكنة دون أن تكون ساكنة. لكن العكس غير صحيح، فلايمكن لوظيفة ساكنه أن تتعامل مع بيانات غير ساكنه كما في هذا المثال:

 

#include <iostream>
using namespace std;
class test {
private:
    int n;
public:
    test() {
        ++n;
    }
    static void display() {
        cout << n <<endl;
    }
};
int test::n=2;
int main() {
    test::display();
    return 0;
}

 

يجب أن تكون n ساكنة كي تستطيع display الوصول لها.

1

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…