PDA

View Full Version : سوال در مورد کلاسها



suraty
پنج شنبه 19 آبان 1390, 01:05 صبح
سلام
به نظر شما جواب سوال زیر کدام گزینه است؟

کدام گزینه در مورد کلاسها صادق نیست؟
الف) یک کلاس می تواند بیش از یک سازنده با پارامترهای ورودی مختلف داشته باشد.
ب) یک کلاس می تواند عضو static داشته باشد که در این صورت این عضو دارای یک کپی خواهد بود و آن کپی تمام اشیا کلاس مشترک خواهد بود.
ج) در کلاسها امکان تعریف کلاسهای تودرتو وجود دارد.
د) از اشیا به عنوان پارامتر ورودی توابع نمی توان استفاده کرد.

به نظر من گزینه های ج و د هر دو غلطند.
لطفا نظرتون رو با توضیح برام بذارید. خیلی ممنون.

developing
پنج شنبه 19 آبان 1390, 11:25 صبح
با سلام

1- در هر كلاس مي توانيم بيش از يك سازنده داشته باشيم. كه البته اين سازنده ها بايد با تعداد پارامترهاي متفاوت باشند و يا اينكه نوع پارامترهاي آنها متفاوت باشد.
نكته: هر كلاسي فقط يك سازنده بدون پارامتر دارد كه به آن سازنده پيش فرض هم مي گويند.
2- عضو ايستا(static) در كلاس هم مي تواند وجود داشته باشد، در اين صورت بدون اينكه شي اي از روي كلاس ساخته شود مي توان به عضو ايستا دسترسي داشت. به شكل زير:

class sample
{
public:
static int a;
};

int sample::a;

int main()
{
sample::a = 100;
cout << sample :: a;
return 0;
}


دقت كنيد كه در مثال بالا هيچ شي اي از روي كلاس تعريف نشد.

نكته1: عضو ايستا در هر كلاس فقط يكي مي باشد هر چند n شي از روي آن كلاس ايجاد شود. يعني تمام اشيايي كه از روي كلاس ايجاد شوند در يك متغير ايستا مي نويسند و از همان مي خوانند.
نكته2: عضو ايستا به دليل اينكه اعضاي ايستا بدون ايجاد شي در دسترس هستند پس حتما بايد با خاصيت عمومي تعريف شوند.

3- كلاسها را مي توان از طريق ارث بري بوجود آورد و يا اينكه آنها را دوست يكديگر قرار داد و حتي مي توانند به صورت تودرتو به كار برده شوند.
اما نكته اي كه بايد به آن دقت نمود اينكه براي دسترسي به كلاسهاي داخلي بايد از عملگر چهار نقطه (::) استفاده نمود.به مثال زير توجه كنيد:

#include<iostream>
#include<conio.h>
class sample{

public:
int i;
class s2{
public:
void f(){std::cout << "Nested";}
};
};
int main()
{
sample::s2 s;
s.f();
getch();
return 0;
}

كه خروجي زير را توليد مي كند:

77692


4- پارامتر ورودي يا خروجي توابع هر چيزي مي تواند باشد فقط به شرطي كه قبلا آن چيز تعريف شده باشد.