2009-05-04, 11:36 PM
صفحات : 1 2
2009-05-05, 10:20 AM
سلام
اول بگو ببینم جواب این سؤال چند نمره به پایان ترمت اضافه می کنه !؟ از شوخی گذشته احتمالا داستانش اینه :
چیزی که شما نوشتی اگه تست کنی می بینی اصلا کامپایل نمی شه چون در [ ] نمی شه یک نوع قرار داد بلکه باید یک عبارت قرار بگیره پس احتمالا این منظور شما بوده :
int **m = new(int*) -1;
که در اینصورت با توجه به (int*) در m آدرس یک اشاره گر به اشاره گر قرار داده می شه که با توجه به کم شدن عدد یک از اون اگه int در او سیستم 4 بایت باشه 4 بایت از آدرسی که توسط new برگردونده می شه کمتره و معلوم نیست به کجا اشاره می کنه. int* متغیر اشاره گر از نوع int هست و new عملگر اختصاص حافظه به یک نوع که آدرس حافظه اختصاص داده شده رو برمی گردونه.
در مجموع برای فهمیدن اشاره گرها زمان زیادی لازمه و پشتکار، کامپایل و دیباگ لازم داره تا کامل درک بشه.
موفق باشی.
اول بگو ببینم جواب این سؤال چند نمره به پایان ترمت اضافه می کنه !؟ از شوخی گذشته احتمالا داستانش اینه :
چیزی که شما نوشتی اگه تست کنی می بینی اصلا کامپایل نمی شه چون در [ ] نمی شه یک نوع قرار داد بلکه باید یک عبارت قرار بگیره پس احتمالا این منظور شما بوده :
int **m = new(int*) -1;
که در اینصورت با توجه به (int*) در m آدرس یک اشاره گر به اشاره گر قرار داده می شه که با توجه به کم شدن عدد یک از اون اگه int در او سیستم 4 بایت باشه 4 بایت از آدرسی که توسط new برگردونده می شه کمتره و معلوم نیست به کجا اشاره می کنه. int* متغیر اشاره گر از نوع int هست و new عملگر اختصاص حافظه به یک نوع که آدرس حافظه اختصاص داده شده رو برمی گردونه.
در مجموع برای فهمیدن اشاره گرها زمان زیادی لازمه و پشتکار، کامپایل و دیباگ لازم داره تا کامل درک بشه.
موفق باشی.
2009-05-05, 10:47 AM
برای تعریف و مقدار دهی به یک آرایه دو بعدی بصورت پویا از کد زیر استفاده کن:
در کد بالا intSize طول آرایه ای است که نیاز دارید... یعنی در حالات کلی کد بالا به آرایه ای بطول intSize * intSize اشاره می کنه.
کد :
int **x;
x=new int * [intSize];
for(i=0;i<intSize;i++)
x[i]=new int[intSize];
در کد بالا intSize طول آرایه ای است که نیاز دارید... یعنی در حالات کلی کد بالا به آرایه ای بطول intSize * intSize اشاره می کنه.
مهمان
2009-05-19, 08:30 PM
گفتم تاپیک اضافه نکنم و سوال مختصرم رو توی تاپیک یه بنده خدای دیگه بپرسم!
چرا نمیشه در سی++ یک کلاس به اینصورت تعریف کرد:
یعنی درواقع متغییرها رو موقع اعلان در کلاس، مقداردهی اولیه هم بکنیم.
چرا نمیشه در سی++ یک کلاس به اینصورت تعریف کرد:
کد :
class A {
int i=1;
};
2009-05-19, 09:52 PM
در استاندارد جدید ++C این قابلیت (برای راحتی کار) اضافه خواهد شد و البته بسیاری موارد سودمند دیگر!
2009-05-19, 10:09 PM
میشه البته باید متغیر رو با صفت static تعریف کرد
2009-05-19, 11:30 PM
اینطوری میشه متغیرها را در متد سازنده پیش فرض مقدار دهی اولیه کرد:
کد :
class A {
int i;
public:
A() : i(1) {}
};
2009-05-20, 09:05 AM
نقل قول :در استاندارد جدید ++C این قابلیت (برای راحتی کار) اضافه خواهد شد و البته بسیاری موارد سودمند دیگر!منبع این ادعا چیه؟
این کار کلا با فلسفه شی گرایی در تزاده چطور میشه شئی که باید یک ماهییت انتظایی داشته باشه رو بیان و امکان تعریف متغییر بصورت صریح در اون قرار بدن؟؟؟ حافظه نگهداری این متغییر از کجا تامین میشه؟؟؟
برای این دسته از تعاریف سی ++ یک قابلیت داره به اسم static شما می تونید یک متغییر یا یک کلاس رو با صفت static تعریف کنید و به اون بصورت بلافصل مقدار بدید...
و نیازی به دستکاری ورژن سی پلاس هم نیست. البته من بازم از این جمله دوستمون تعجب می کنم منظورتون از نسحه جدید C++ چیه؟ C++ builder یا C++ .Net یا C# یا هر ورژن دیگه؟؟؟
مهمان
2009-05-20, 10:21 AM
فكر ميكنم منظورشون استاندارد جديد سي++ هست. فكر ميكنم اسمش C++0x يا يه همچين چيزي بود.
ضمنا من نميخوام متغير مربوطه خواص متغيرهاي استاتيك رو داشته باشه.
ضمنا من نميخوام متغير مربوطه خواص متغيرهاي استاتيك رو داشته باشه.
مهمان
2009-05-20, 10:24 AM
من فقط يه مقدار پيشفرض براي متغيرهاي عادي ميخواستم كه نيازي به شلوغ كردن كد و ctor نداشته باشه. اونطوري وقتي نگاه ميكني متغيير و مقدار پيشفرضش يكجا هست و ساده و خواناست.
2009-05-20, 07:11 PM
farhadnia نویسنده :منبع این ادعا چیه؟کدوم ادعا؟! استاندارد قبلی زبان ++C که C++98 بوده و استاندارد جدید قراره منتشر بشه اما چون فعلا مشخص نیست دقیقا تا چه سالی انتشار نهاییش طول میکشه، به همین خاطر استاندارد جدید زبان رو بصورت C++0x مینویسند که 0x عدد مربوط به سال رو مشخص میکنه. ولی به احتمال زیاد تا پایان سال ۲۰۰۹ کارش تموم میشه و نام استاندارد جدید ++C رو بصورت C++09 خواهند نوشت. در حال حاضر بسیاری از قابلیتهای این استاندارد جدید در حال پیادهسازی شدن در کامپایلرهای معروف هست بخصوص GCC
farhadnia نویسنده :این کار کلا با فلسفه شی گرایی در تزاده چطور میشه شئی که باید یک ماهییت انتظایی داشته باشه رو بیان و امکان تعریف متغییر بصورت صریح در اون قرار بدن؟؟؟ حافظه نگهداری این متغییر از کجا تامین میشه؟؟؟۱) تزاده = تضاده، انتظایی = انتزاعی، متغییر = متغیر
۲) قرار نیست با مشخص شدن مقدار پیشگزیده برای یک متغیر در بدنه کلاس، در همون لحظه براش حافظه تخصیص داده بشه! فکر کنم شما دقیقا نحوه initialize شدن نمونهی اشیاء در ++C رو متوجه نشدید. وقتی که اعضای یک کلاس رو تعریف کنیم، در اون لحظه که تخصیص حافظه صورت نمیگیره. در ضمن، در خارج از بدنه تعریف کلاس، اگر هم مقدار پیشگزیدهای برای یک متغیر در نظر نگیریم، با تعریف متغیر (فقط نام و نوع آن)، تخصیص حافظه هم صورت میگیره و نیازی به علامت تساوی بعد از نام متغیر نیست.
۳) ممنون میشم ثابت کنی که چطور این قابلیت با شیگرایی در تضاده!؟ و اصولا میشه ربطش رو با شیگرایی توضیح بدی؟!
نقل قول :برای این دسته از تعاریف سی ++ یک قابلیت داره به اسم static شما می تونید یک متغییر یا یک کلاس رو با صفت static تعریف کنید و به اون بصورت بلافصل مقدار بدید...البته کاربرد static با اون چیزی که تو این تاپیک درخواست شده، بسیار متفاوته.
نقل قول :و نیازی به دستکاری ورژن سی پلاس هم نیست. البته من بازم از این جمله دوستمون تعجب می کنم منظورتون از نسحه جدید C++ چیه؟ C++ builder یا C++ .Net یا C# یا هر ورژن دیگه؟؟؟من گفته بودم استاندارد جدید ++C... ترجیحا بهتره کمی در این رابطه مطالعه کنید. گوگل دوست شماست
2009-05-20, 07:14 PM
<!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/C%2B%2B0x">http://en.wikipedia.org/wiki/C%2B%2B0x</a><!-- m -->
<!-- m --><a class="postlink" href="http://gcc.gnu.org/gcc-4.4/cxx0x_status.html">http://gcc.gnu.org/gcc-4.4/cxx0x_status.html</a><!-- m -->
<!-- m --><a class="postlink" href="http://gcc.gnu.org/gcc-4.4/cxx0x_status.html">http://gcc.gnu.org/gcc-4.4/cxx0x_status.html</a><!-- m -->
2009-05-20, 10:18 PM
نقل قول :من گفته بودم استاندارد جدید ++C... ترجیحا بهتره کمی در این رابطه مطالعه کنید. گوگل دوست شماستدوست من ببخشید که با معلومات کم زود قضاوت کردم در مورد پست شما من خودم رو سی کار می دونستم ولی باید یه مقدار از کار کمتر کنم و بیشترمطالعه کنم... :oops:
بازم ببخشید.
2009-05-20, 10:44 PM
PC2st.ir نویسنده :استاندارد قبلی زبان ++C که C++98 بودهمن هم عذر میخوام :roll: چون این قسمت رو اشتباه نوشتم، استاندارد قبلی C++03 بوده (سال ۲۰۰۳) که بعد از استاندارد C++98 اومده بود.
مهمان
2009-05-23, 09:06 AM
نقل قول :... در مورد پست شما من خودم رو سی کار می دونستم ولی باید یه مقدار از کار کمتر کنم و بیشترمطالعه کنم... :oops:[ltr]
out of curiosity, can I know whats your job?
[/ltr]
2009-11-07, 09:50 AM
سلام ببخشید این برنامه الان مشکلش کجاست ؟
من اینجوری اجزا میکنم error میده
اما این error میده
کد :
#include <iostream>
int main()
{
std::cout <<"hello world";
return0;
}
من اینجوری اجزا میکنم error میده
کد :
g++ test.cpp -o test
اما این error میده
کد :
baber@baber-desktop:~/Desktop$ g++ test.cpp -o test
test.cpp: In function ‘int main()’:
test.cpp:5: error: ‘return0’ was not declared in this scope
مهمان
2009-11-07, 10:20 AM
کد :
return[space]0
2009-11-07, 10:27 AM
ممنون درست شد ۱ سوال دیگه در این حالت خروجی پشت خط مینویسه یعنی به این صورت
آیا امکانش هست که جلوی خط بنویسه
یا کلا به صورتی دیگر
کد :
hello worldbaber@baber-desktop:~/Desktop$
آیا امکانش هست که جلوی خط بنویسه
کد :
baber@baber-desktop:~/Desktop$ hello world
یا کلا به صورتی دیگر
2009-11-07, 08:50 PM
کد :
std::cout << "hello world\n";
کد :
std::cout << "hello world" << std::endl;
مهمان
2009-12-04, 02:44 PM
سلام
من می خوام یه B-Tree با لیست های پیوندی بسازم . من یه الگوریتم بازگشتی نوشتم اما کار نداد . میشه یه الگوریتم ارایه بکنید؟ من می خوام یه درخت با i گره بسازم. در c++
من می خوام یه B-Tree با لیست های پیوندی بسازم . من یه الگوریتم بازگشتی نوشتم اما کار نداد . میشه یه الگوریتم ارایه بکنید؟ من می خوام یه درخت با i گره بسازم. در c++
صفحات : 1 2