لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در c++
2009-05-04, 11:36 PM,
ارسال : #1
مشکل در c++
میشه بگید این خط برنامه چه کار می کنه؟

int * *m=new[int*]-1

این [int*[ معنیش چیه؟
نقل قول این ارسال در یک پاسخ
2009-05-05, 10:20 AM,
ارسال : #2
 
سلام

اول بگو ببینم جواب این سؤال چند نمره به پایان ترمت اضافه می کنه !؟ از شوخی گذشته احتمالا داستانش اینه :

چیزی که شما نوشتی اگه تست کنی می بینی اصلا کامپایل نمی شه چون در [ ] نمی شه یک نوع قرار داد بلکه باید یک عبارت قرار بگیره پس احتمالا این منظور شما بوده :

int **m = new(int*) -1;

که در اینصورت با توجه به (int*) در m آدرس یک اشاره گر به اشاره گر قرار داده می شه که با توجه به کم شدن عدد یک از اون اگه int در او سیستم 4 بایت باشه 4 بایت از آدرسی که توسط new برگردونده می شه کمتره و معلوم نیست به کجا اشاره می کنه. int* متغیر اشاره گر از نوع int هست و new عملگر اختصاص حافظه به یک نوع که آدرس حافظه اختصاص داده شده رو برمی گردونه.

در مجموع برای فهمیدن اشاره گرها زمان زیادی لازمه و پشتکار، کامپایل و دیباگ لازم داره تا کامل درک بشه.
موفق باشی.
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-05, 10:47 AM,
ارسال : #3
 
برای تعریف و مقدار دهی به یک آرایه دو بعدی بصورت پویا از کد زیر استفاده کن:

کد :
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,
ارسال : #4
 
گفتم تاپیک اضافه نکنم و سوال مختصرم رو توی تاپیک یه بنده خدای دیگه بپرسم!
چرا نمیشه در سی++ یک کلاس به اینصورت تعریف کرد:
کد :
class A {
int i=1;
};
یعنی درواقع متغییرها رو موقع اعلان در کلاس، مقداردهی اولیه هم بکنیم.
نقل قول این ارسال در یک پاسخ
2009-05-19, 09:52 PM,
ارسال : #5
 
در استاندارد جدید ++C این قابلیت (برای راحتی کار) اضافه خواهد شد و البته بسیاری موارد سودمند دیگر!

وب‌نوشت رایانه‌دوست؛ جزء کوچکی از اجتماع کاربرهای گنو/لینوکس
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-19, 10:09 PM,
ارسال : #6
 
میشه البته باید متغیر رو با صفت static تعریف کرد
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-19, 11:30 PM,
ارسال : #7
 
اینطوری میشه متغیرها را در متد سازنده پیش فرض مقدار دهی اولیه کرد:
کد :
class A {
int i;
public:
A() : i(1) {}
};
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-20, 09:05 AM,
ارسال : #8
 
نقل قول :در استاندارد جدید ++C این قابلیت (برای راحتی کار) اضافه خواهد شد و البته بسیاری موارد سودمند دیگر!
منبع این ادعا چیه؟
این کار کلا با فلسفه شی گرایی در تزاده چطور میشه شئی که باید یک ماهییت انتظایی داشته باشه رو بیان و امکان تعریف متغییر بصورت صریح در اون قرار بدن؟؟؟ حافظه نگهداری این متغییر از کجا تامین میشه؟؟؟
برای این دسته از تعاریف سی ++ یک قابلیت داره به اسم static شما می تونید یک متغییر یا یک کلاس رو با صفت static تعریف کنید و به اون بصورت بلافصل مقدار بدید...
و نیازی به دستکاری ورژن سی پلاس هم نیست. البته من بازم از این جمله دوستمون تعجب می کنم منظورتون از نسحه جدید C++ چیه؟ C++ builder یا C++ .Net یا C# یا هر ورژن دیگه؟؟؟
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-20, 10:21 AM,
ارسال : #9
 
فكر ميكنم منظورشون استاندارد جديد سي++ هست. فكر ميكنم اسمش C++0x يا يه همچين چيزي بود.
ضمنا من نميخوام متغير مربوطه خواص متغيرهاي استاتيك رو داشته باشه.
نقل قول این ارسال در یک پاسخ
2009-05-20, 10:24 AM,
ارسال : #10
 
من فقط يه مقدار پيشفرض براي متغيرهاي عادي ميخواستم كه نيازي به شلوغ كردن كد و ctor نداشته باشه. اونطوري وقتي نگاه ميكني متغيير و مقدار پيشفرضش يكجا هست و ساده و خواناست.
نقل قول این ارسال در یک پاسخ
2009-05-20, 07:11 PM,
ارسال : #11
 
farhadnia نویسنده :منبع این ادعا چیه؟
کدوم ادعا؟! Smile استاندارد قبلی زبان ++C که C++98 بوده و استاندارد جدید قراره منتشر بشه اما چون فعلا مشخص نیست دقیقا تا چه سالی انتشار نهاییش طول میکشه، به همین خاطر استاندارد جدید زبان رو بصورت C++0x می‌نویسند که 0x عدد مربوط به سال رو مشخص می‌کنه. ولی به احتمال زیاد تا پایان سال ۲۰۰۹ کارش تموم میشه و نام استاندارد جدید ++C رو بصورت C++09 خواهند نوشت. در حال حاضر بسیاری از قابلیت‌های این استاندارد جدید در حال پیاده‌سازی شدن در کامپایلرهای معروف هست بخصوص GCC

farhadnia نویسنده :این کار کلا با فلسفه شی گرایی در تزاده چطور میشه شئی که باید یک ماهییت انتظایی داشته باشه رو بیان و امکان تعریف متغییر بصورت صریح در اون قرار بدن؟؟؟ حافظه نگهداری این متغییر از کجا تامین میشه؟؟؟
۱) تزاده = تضاده، انتظایی = انتزاعی، متغییر = متغیر
۲) قرار نیست با مشخص شدن مقدار پیش‌گزیده برای یک متغیر در بدنه کلاس، در همون لحظه براش حافظه تخصیص داده بشه! فکر کنم شما دقیقا نحوه initialize شدن نمونه‌ی اشیاء در ++C رو متوجه نشدید. وقتی که اعضای یک کلاس رو تعریف کنیم، در اون لحظه که تخصیص حافظه صورت نمیگیره. در ضمن، در خارج از بدنه تعریف کلاس، اگر هم مقدار پیش‌گزیده‌ای برای یک متغیر در نظر نگیریم، با تعریف متغیر (فقط نام و نوع آن)، تخصیص حافظه هم صورت میگیره و نیازی به علامت تساوی بعد از نام متغیر نیست.
۳) ممنون میشم ثابت کنی که چطور این قابلیت با شی‌گرایی در تضاده!؟ و اصولا میشه ربطش رو با شی‌گرایی توضیح بدی؟!

نقل قول :برای این دسته از تعاریف سی ++ یک قابلیت داره به اسم static شما می تونید یک متغییر یا یک کلاس رو با صفت static تعریف کنید و به اون بصورت بلافصل مقدار بدید...
البته کاربرد static با اون چیزی که تو این تاپیک درخواست شده، بسیار متفاوته.

نقل قول :و نیازی به دستکاری ورژن سی پلاس هم نیست. البته من بازم از این جمله دوستمون تعجب می کنم منظورتون از نسحه جدید C++ چیه؟ C++ builder یا C++ .Net یا C# یا هر ورژن دیگه؟؟؟
من گفته بودم استاندارد جدید ++C... ترجیحا بهتره کمی در این رابطه مطالعه کنید. گوگل دوست شماست Smile

وب‌نوشت رایانه‌دوست؛ جزء کوچکی از اجتماع کاربرهای گنو/لینوکس
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-20, 07:14 PM,
ارسال : #12
 
<!-- 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 -->

وب‌نوشت رایانه‌دوست؛ جزء کوچکی از اجتماع کاربرهای گنو/لینوکس
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-20, 10:18 PM,
ارسال : #13
 
نقل قول :من گفته بودم استاندارد جدید ++C... ترجیحا بهتره کمی در این رابطه مطالعه کنید. گوگل دوست شماست
دوست من ببخشید که با معلومات کم زود قضاوت کردم در مورد پست شما من خودم رو سی کار می دونستم ولی باید یه مقدار از کار کمتر کنم و بیشترمطالعه کنم... :oops:
بازم ببخشید.
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-20, 10:44 PM,
ارسال : #14
 
PC2st.ir نویسنده :استاندارد قبلی زبان ++C که C++98 بوده
من هم عذر میخوام :roll: چون این قسمت رو اشتباه نوشتم، استاندارد قبلی C++03 بوده (سال ۲۰۰۳) که بعد از استاندارد C++98 اومده بود.
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-05-23, 09:06 AM,
ارسال : #15
 
نقل قول :... در مورد پست شما من خودم رو سی کار می دونستم ولی باید یه مقدار از کار کمتر کنم و بیشترمطالعه کنم... :oops:
[ltr]
out of curiosity, can I know whats your job?
[/ltr]
نقل قول این ارسال در یک پاسخ
2009-11-07, 09:50 AM,
ارسال : #16
 
سلام ببخشید این برنامه الان مشکلش کجاست ؟

کد :
#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,
ارسال : #17
 
کد :
return[space]0
نقل قول این ارسال در یک پاسخ
2009-11-07, 10:27 AM,
ارسال : #18
 
ممنون درست شد ۱ سوال دیگه در این حالت خروجی پشت خط مینویسه یعنی به این صورت
کد :
hello worldbaber@baber-desktop:~/Desktop$

آیا امکانش هست که جلوی خط بنویسه

کد :
baber@baber-desktop:~/Desktop$ hello world

یا کلا به صورتی دیگر
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-11-07, 08:50 PM,
ارسال : #19
 
کد :
std::cout << "hello world\n";
یا:
کد :
std::cout << "hello world" << std::endl;

StarCalendar | Blog | 1+ | OS
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2009-12-04, 02:44 PM,
ارسال : #20
 
سلام
من می خوام یه B-Tree با لیست های پیوندی بسازم . من یه الگوریتم بازگشتی نوشتم اما کار نداد . میشه یه الگوریتم ارایه بکنید؟ من می خوام یه درخت با i گره بسازم. در c++
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان