*** ممنوع الإستعانة بالكومبايلر ومسموح إلأتصال بصديق ***
هذه أسئلة خفيفة من نوع السهل الممتنع حبيت أحطها
لأن القسم ميت أقصد 99.99999999% من المواضيع أسئلة أو واجبات أو يمكن حل مشاريع جاهزة
فحطيت هذه الأسئلة عشان أحرك القسم وأذكر هذه للأذكي فقط
عموما هذه الأسئلة تبين غباء اللي يكتبون كومبايلر وأيضا إنهم قاعدين يضحكون علينا <<< شكلي طولت عليكم
نبدأ بعون الله
1) ما ذا تتوقع يطبع هذا الكود ؟ ولماذا " إريد تفسير علمي برمجي " ؟
#include<iostream>
int main()
{
const int ci = 5;
int * i = (int*) &ci;
++*i;
std::cout<<"address ci = "<<&ci <<" ci value = "<<ci<<"\n";
std::cout<<"address i = "<<i <<" *i value = "<<*i<<"\n";
return 0;
}مطلوب من كل واحد يحط ال output اللي يتوقعها وللتذكير ممنوع النظر في ........ أو إستخدام أي لغة ثانية ؟ أقلكم بعدين عشان ما تعرفون الحل ؟
2) ما ذا تتوقع يطبع هذا الكود ؟ ولماذا " إريد تفسير علمي برمجي " ؟ وهل هو صحيح منطقياً ؟
#include<iostream>
class base
{
public :
virtual void print(){std::cout<<"base\n";}
};
class derived:public base
{
private:
virtual void print(){std::cout<<"derived\n";}
};
int main()
{
base * b = new derived();
b->print();
delete b;
}3) أين الخطأ ولماذا ؟ " أرجو عدم الإستعانة بالكموبايلر " ؟
#include<iostream>
class base
{
public :
virtual void print() = 0;
virtual ~base() = 0;
};
class derived:public base
{
public :
virtual void print() {std::cout<<"print\n";}
virtual derived(){};
};
int main()
{
base * b = new derived();
b->print();
delete b;
}
4) كيف تعرف عدد المرات اللي سيستدعى فيها الdestructor ؟ علما أن هذه الطريقة standard بين كل الكمبايلرات ؟ (مساعدة قد وضعت موضوع في هذه الطريقة ) ؟
#include<iostream>
#include<cstdlib>
class bms
{
public:
bms(){}
~bms(){}
};
int main()
{
bms * b = new bms[(unsigned int)rand()];
// ------------------------------->>destructor كم مرة بيستدعى ال
delete [] b;
}
وفي الختام أنتظر مشاركات منكم ويله وروني شطارتكم ؟

