PDA

View Full Version : دسترسی به متغیر محلی دوم



mo.esmp
چهارشنبه 09 اسفند 1385, 02:02 صبح
سلام دوستان دو سئوال داشتم.
1-به متغیر x3 با چه دستوری میتوان دسترسی پیدا کرد ؟



int x1;
int main()
{
int x2;


{
int x3;
}


}





در کلاس، کلمه کلیدی explicit که قبل از سازنده کلاس میاد چه کاری رو انجام میده.



class classNAME {
public:
explicit classNAME();
}

american_iran2006
چهارشنبه 09 اسفند 1385, 17:34 عصر
سلام :


int *b;
b=&x3;

mo.esmp
چهارشنبه 09 اسفند 1385, 21:31 عصر
سلام.
اگه همه متغیرها همنام باشند چی ؟ مثلا اگر بخواهیم متغیر محلی دوم x را در main چاپ کنیم چی ؟



int x;
int main()

{
int x;



{
int x;
}



}

american_iran2006
پنج شنبه 10 اسفند 1385, 08:14 صبح
میتونی مقداره مورده نظرتو با return بگردونی تو main و چاپ کنی

main(){
int x;
}
int x2;
statment;
return x2{
cout << اسم تابع که میخوای متغییر ش چاپ شه;
{

mo.esmp
پنج شنبه 10 اسفند 1385, 12:35 عصر
در داخل بلاک تابع نداریم، فقط یک متغیر همنام با متغیر محلی اول داریم. راه دیگه ای نیست بجز استفاده از تابع ؟

saeedIRHA
پنج شنبه 10 اسفند 1385, 22:26 عصر
سلام
اگر با ++Visaul C کار میکنی استفاده از Namespace برای این کار میتونه
گزینیه مناسبی باشه، اگر بیشتر خواستی در موردش بدونی بگو که بیشتر توضیح بدم!

mo.esmp
جمعه 11 اسفند 1385, 17:25 عصر
من با Visual کار نمیکنم. البته راهی که به نظر خودم رسید، وقتی که همه متغیرها هم نام باشند مثل جواب دوستمون american_iran2006 (http://barnamenevis.org/forum/member.php?u=31189) اشاره گر رو داخل بلاک قرار بدیم و در main با اشاره گر کار کنیم. البته اگه شما هم توضیح بدید ممنون میشم.



int x;


int main()
{
int x;


{
int x;
int *y = &x;
}


}

saeedIRHA
شنبه 12 اسفند 1385, 00:17 صبح
همون طور که گفتم یک دیگه از راهایه انجام این کار استفاده از Namespace هست
برایه مثال به کده زیر دقت کن:


#include <iostream>

namespace myInt{
int x1 =10;
}

namespace myInt2{
int x1 = 20;
}
namespace myInt3{
int x1 =10;
}
int main()
{
std::cout << "Values are:" << myInt::x1 <<" , " <<
myInt2::x1 << ", " << myInt3::x1 << std::endl;

return 0;
}

mo.esmp
یک شنبه 13 اسفند 1385, 18:56 عصر
جواب شما با مسئله من همخوانی ندارد. متغیر سراسری رو میشه با عملگر تفکیک دامنه در main چاپ کرد و شما از تابع هم استفاده کردید.