در این تاپیک میتونید ، هر آنچیزی که بنظر شما در مورد زبان c/c++ جالبه را با دیگران به اشتراک بزارید تا دیگران هم از برنامه نویسی با این زبان ها لذت ببرند...
این نکات می تواند شامل :
ترفند ها
توصیه ها
و یا
گریز هایی به استاندارد های جدید زبان c/c++ باشد...
به امید اینکه این تاپیک به تاپیکی جامع و البته جالبی تبدیل بشه... (البته با کمک دوستان)
اولین نکته را خودم میزارم :
آیا می دونستید در زبان C++ می توانید در بین کد هاتون URL هم قرار بدید ، یعنی به این شکل :
کد:
#include <iostream>
using namespace std;
int main()
{
http://forum.ustmb.ir
cout << "Hello world! :)";
return 0;
}
این کد بدون هیچ خطایی کامپایل خواهد شد!
البته واقعا کامپایلر متوجه نمیشه این یک URL هست ، در واقع شما ابتدا دارید یک label به نام http تعریف می کنید و بعد جلوش چند عبارت را به صورت کامنت نوشتید ، برای همین برنامه کامپایل خواهد شد
اما کامپایلر به شما هشدار خواهد داد که شما label ای تعریف کردید به نام http اما هیچگاه از اون استفاده نکردید! البته در IDE های مدرن مانند Visual Studio این قسمت URL تشخیص داده میشه و اون خط را مانند یک لینک نمایش میده...
امیدوارم براتون جالب بوده باشه...
حالا واقعا اگه یکی بخواد از http بعنوان لیبل استفاده کنه چی..؟!!(در واقع با این شرط که اسم لیبل باید همین باشه و قابل تغییر نیست..)
دقیقا متوجه منظورت نشدم!؟
اگر منظورت اینکه در IDE ویژوال استدیو به صورت لینک نمایش داده میشه هست ، این به هیچ عنوان اشکالی نداره ، اون چیزی که مهم هست تشخصی کامپایلر از این عبارت هست ، شما در هر جای برنامه از دستور goto http استفاده کنید برنامه به این label خواهد رفت...
دقیقا متوجه منظورت نشدم!؟
اگر منظورت اینکه در IDE ویژوال استدیو به صورت لینک نمایش داده میشه هست ، این به هیچ عنوان اشکالی نداره ، اون چیزی که مهم هست تشخصی کامپایلر از این عبارت هست ، شما در هر جای برنامه از دستور goto http استفاده کنید برنامه به این label خواهد رفت...
خب بعده goto http به لیبل http که رفت، اوون خط لیبل رو لینک میشناسه..درسته..؟!؟ .... حالا میشه بصورت لینک نشناسه..؟! یا اینکه جز کلمات رزروی محسوب میشه..؟
خب بعده goto http به لیبل http که رفت، اوون خط لیبل رو لینک میشناسه..درسته..؟!؟ .... حالا میشه بصورت لینک نشناسه..؟! یا اینکه جز کلمات رزروی محسوب میشه..؟
نه ، نه !! اشتباه نکن !! اونچیزی که شما لینک میبینی فقط یکی از امکانات Text Editor ویژوال استدیو هست و هیج تاثیری در کامپایل برنامه نداره ، دقیقا مثل زمانی که شما در Notpad++ یک چیزی مینویسی...
IDE یک چیز هست ، کامپایلر یک چیز دیگه...
گریزی به استاندارد C++11 :
Range-based Loop:
در C++11 حلقه های جدیدی معرفی شدند که ما اونها را با عنوان Rang based loop میشناسیم ، این حلقه ها با هدف کوتاه شدن کد در C++11 معرفی شدند و نوشتن حلقه ها را ساده تر کرده است...
در این نوع حلقه ها ما با محدوده ی داده ها سر کار داریم و میتونیم محدوده ی آرایه ها ، کلاس های عمومی C++ 11 مانند (لیست ها ، پشته ها ، صف و...) را پیمایش کنیم :
فرض کنید ما آرایه 10 خانه ای از نوع int داشته باشیم در استاندار های پیشین C++ این ارایه را میشد به این صورت پیمایش کرد :
علاقه مندی ها (Bookmarks)